суть в чем - сделай две (или более) форм, и обработай событие перемещения окна (при перемещении сначала вызывается OnCanResize, затем - OnConstrainedResize) и если окно оказывается у заголовка другого окна (например перетаскиваешь Form2 на Form1) то (если ты кидаешь на формы PageControl) создаешь новую вкладку, копируешь туда данные с перетаскиевамой формы и у формы делаешь Form2.Visible:=false;
учти, чтобы юзать одну форму из другой надо после {$R *.dfm}
добвить:
uses Unit1; //или любой другой
|