Caso interesse á alguem fiz para funcionar no lazarus
procedure TFormOrcamento.DBGridDadosMouseMove(Sender: TObject; Shift: TShiftState; X, Y: integer);
var
C, L, auxID: integer;
auxB: TBookMark;
begin
//Pega a Coluna e a Linha pela posição X, Y
(Sender as TDBGrid).MouseToCell(X, Y, C, L);
if(L < 1)then Exit;
try
//Marca a posição do dataset
auxB := DataSourceDados.DataSet.GetBookmark;
//Desabilita controles para não ficar oscilando
DataSourceDados.DataSet.DisableControls;
//Vai para a linha desejada
DataSourceDados.DataSet.RecNo := L;
//Pega a informação
auxID := DataSourceDados.DataSet.FieldByName('ID').AsInteger;
//Adiciona a informação ao Hint
(Sender as TDBGrid).Hint := 'ID: ' + IntToStr(auxID);
//Mostra o Hint
Application.ActivateHint(Mouse.CursorPos);
finally
//Volta para a posição inicial
DataSourceDados.DataSet.GotoBookmark(auxB);
//Limpa a marcação
DataSourceDados.DataSet.FreeBookmark(auxB);
//Reabilida controles
DataSourceDados.DataSet.EnableControls;
end;
end;