В принципе, можно и PageControl, просто при создании новой закладки передавать её как парента компонентам, что лежали на предыдущей табшитке. Вот пример динамического добавления вкладки
Код:
procedure TForm1.ButtonAddTabClick(Sender: TObject);
begin
with TTabSheet.Create(PageControl1) do
begin
Visible:= true;
Caption:= 'Таблица ' + IntToStr(PageControl1.PageCount + 1);
PageControl:= PageControl1;
PageControl1.TabIndex:= TabIndex;
PageControl1.OnChange(self);
end; // with
// Здесь код создания таблицы
end;
а вот как парента менять при выборе закладки
Код:
procedure TForm1.PageControl1Change(Sender: TObject);
begin
ButtonClose.Parent:= PageControl1.ActivePage;
DBGrid1.Parent:= PageControl1.ActivePage;
// и т.д.
end;
если будет ваш вариант сборки, можно её адаптировать и более подробно