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  
