Код:
	interface
type
// класс потока
  TMainThread = class(TThread)
  private
  protected
    procedure Execute; override;
  end;
var
// собственно сам поток
  MainThread: TMainThread; 
 
	Код:
	implementation
// на создание формы создаем и запускаем поток
procedure TFMainForm.FormCreate(Sender: TObject);
begin
  MainThread := TMainThread.Create(True);
  MainThread.FreeOnTerminate := True;
  MainThread.Priority := tpNormal;
  MainThread.Resume;
end;
 
 
	Код:
	procedure TFMainForm.FormClose(Sender: TObject);
begin
// на закрытие формы останавливаем поток если он существует
  if Assigned(MainThread) then
    if not MainThread.Terminated then
      MainThread.Terminate;
end; 
 
	Код:
	// процедура выполнения потока, т.е. в ней пишем выполняемые действия
procedure TMainThread.Execute;
begin
  // пока поток работает
  while not Terminated do
  begin
    Synchronize(RepaintImage {здесь например может быть процедура перерисовки изображения} );
  end;
end; 
 
И таких потоков можно запустить несколько, например 1 на прорисовку, 1 на AI, 1 еще на что-нибудь. И вообще если собираешься делать нормалью игру советую забить на средства GDI (они дико медленны) и пользовать либо готовые игровые движки, либо написать свой. Можно использовать DirectX SDK, вроде как там до сих пор есть DirectDraw - довольно неплох для вывода 2д графики.