На скорую руку.
Заводим глобальную переменную
	Код:
	var
  Flag: Boolean = True;
 
 
Заворачиваем вызов процедуры рисующей фигуры в case
	Код:
	procedure TForm1.FormMouseUp(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
var
  Mess: String;
begin
  ...
  case Flag of
    True: PaintKN(knKrestik, (X div C_CellWH), (Y div C_CellWH));
    False: PaintKN(knNolik, (X div C_CellWH), (Y div C_CellWH));
  end;
  ...
End; 
 
А в самой процедуре рисования фигур меняем состояние глобальной переменной.
	Код:
	  Case S of
    knKrestik:
      begin
        ...
        Flag := False;
      end;
    knNolik:
      begin
        ...
        Flag := True;
      end;
  End; 
 
При таком раскладе первый игрок всегда ходит крестиками.