Делал раньше подобное, но когда недавно снова понадобилось, то потратил кучу времени на поиск решения, поэтому выкладываю на будущее:
Поставить на Form.Resaise:
for i := 0 to ComponentCount - 1 do
if (Components[i] is TGroupBox) then
begin
(Components[i] as TGroupBox).Left:= 10;
(Components[i] as TGroupBox).Top:= 10;
(Components[i] as TGroupBox).Width:=form1.Width-25;
(Components[i] as TGroupBox).Top:=form1.Height-90;
end;