Temos um problema quando alteramos a propriedade options de um TDBGrid para selecionar a linha inteira (dgRowSelect) que não conseguimos mover o scroll pelo teclado, o exemplo abaixo demonstra como contornar esse problema usando API do windows.

Coloque esse código no evento KeyDown do DBGrid.


procedure Tform1.DBGrid1KeyDown(Sender: TObject;
  var Key: Word; Shift: TShiftState);
begin
  if (Key = VK_LEFT)  then begin
    Key := 0;
    PostMessage(DBGrid1.Handle, WM_HSCROLL, 0, 0);
  end
  else if (Key = VK_RIGHT)  then begin
    Key := 0;
    PostMessage(DBGrid1.Handle, WM_HSCROLL, 1, 0);
  end;
end;

O exemplo foi testado no Delphi 7.

Espero ter ajudado.