Puedes probar esto a ver si te sirve...
Código Delphi
[-]
type
TglugluDbGrid = class(TDBGrid);
procedure Tgluglu.DBGrid1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
Var
Celda : TGridCoord;
OldReg : integer;
begin
Celda := DbGrid1.MouseCoord(x,y);
if (Celda.Y >= 0) and (Celda.X < DbGrid1.Columns.Count) and (Celda.Y > 0) then
Begin
OldReg := TglugluDbGrid(DbGrid1).DataLink.ActiveRecord;
TglugluDbGrid(DbGrid1).DataLink.ActiveRecord := Celda.Y - 1;
Caption := DbGrid1.Columns[Celda.x-1].Field.AsString;
TglugluDbGrid(DbGrid1).DataLink.ActiveRecord := OldReg;
End
else
Caption := '';
end;