Uno de los métodos que puedes utilizar es capturar el cambio del registro (en el Datasource)que provoca el cambio de fila en el DBGrid.
Utiliza el evento OnDataChange del DataSource que tengas en el DBGrid.
Recuerda que OnDataChange informa del cambio del valor de "un" TField de la tabla asociada, pero nos informa de manera especial de que se ha cambiado de registro en la tabla cuando nos entrega en el TField un valor "nil". Así que:
procedure TForm1.DataSource1DataChange(Sender: TObject; Field: TField);
begin
if Field = nil then
<...hubo cambio del registro completo>
end;
end;