Pues la única solución que te puedo brindar es con el uso de un MSFlexGrid, porque con un DBGrid estoy 99% seguro que no se puede.
Crea el Recordset y llena un FlexGrid con los datos de éste (el FlexGrid no lo tienes que enlazar con el Recordset, llénalo a píe osea por código). Depues le puedes agregar una columna al FlexGrid y luego lo recorres cada fila y has el cálculo corresondiente.
Abajo te pongo un ejemplo con el FlexGrid.
Código:
........
FlexGrid.FormatString = " Campo1 | Campo 2 | Campo 3"
FlexGrid.Rows = 1
While not Rs.EOF
FlexGrid.TextMatrix(FlexGrid.Rows - 1, 0) = Rs("Campo1")
FlexGrid.TextMatrix(FlexGrid.Rows - 1, 1) = Rs("Campo2")
FlexGrid.TextMatrix(FlexGrid.Rows - 1, 2) = Rs("Campo3")
FlexGrid.Rows = FlexGrid.Rows + 1
Rs.MoveNext
Loop
FlexGrid.Cols = FlexGrid.Cols + 1
.....
For i = 1 To FlexGrid.Rows - 1
'El calculo necesario
FlexGrid.TextMatrix(i,3) = 'Resultado del cálculo.
Next
Espero que te sirva.
Saludes