いろいろと考えた結果、こうなりました。どうですか?
タイマー2のIntervalはとりあえず350にしました
で、キャラの移動なんですが、61の方法では失敗しました

var
 Form1: TForm1;
 ch,key,chtim : Integer;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
 if GetKeyState( VK_LEFT ) < 0 then key :=1;
 if GetKeyState( VK_RIGHT ) < 0 then key :=3;
 if GetKeyState( VK_UP ) < 0 then key :=2;
 if GetKeyState( VK_DOWN ) < 0 then key :=0;
 imagelist1.GetBitmap(ch, image1.Picture.Bitmap);
 Image1.Refresh;
end;

procedure TForm1.Timer2Timer(Sender: TObject);
begin
 if chtim=8 then chtim:=0
 else chtim:=8;
 ch := key+chtim;
end;