Seguro que hay algún método mejor de hacerlo, pero por que no comprobar que teclas están pulsadas. Podemos comprobarlo en el evento OnKeyDown, por ejemplo, o con algún Timer.
Código Delphi
[-]
var
izquierda, derecha, arriba, abajo: boolean;
begin
izquierda:= (GetKeyState(VK_LEFT) and $80) > 0;
derecha:= (GetKeyState(VK_RIGHT) and $80) > 0;
arriba:= (GetKeyState(VK_UP) and $80) > 0;
abajo:= (GetKeyState(VK_DOWN) and $80) > 0;
end;
Aquí un ejemplo muy simple de una pelota moviéndose por el formulario