¿Y por qué no creas una clase? Por ejemplo (así, a lo burro):
Código Delphi
[-]
TGrupoComponentes = CLASS
PRIVATE
fComponentes: ARRAY OF TCOMPONENT;
fNumComp: INTEGER;
PUBLIC
CONSTRUCTOR Create;
PROCEDURE AnnadeComponente (Componente: TCOMPONENT);
PROPERTY Componentes: ARRAY OF TCOMPONENT READ fComponentes;
END;
CONSTRUCTOR TGrupoComponentes.Create;
BEGIN
fNumComp := 0;
END;
PROCEDURE TGrupoComponentes.AnnadeComponente (Componente: TCOMPONENT);
BEGIN
INC (fNumComp);
SETLENGTH (fComponentes, fNumComp);
fComponentes[fNumComp] := Componente;
END;
Posiblemente esto no funcione y que haya una estructura mejor que el ARRAY para almacenar referencias a componentes, pero creo que entiende la idea.
[edit] Bicho tiene razón: si quitas los bordes a un panel y le pones el mismo color que el fondo de la aplicación se vuelve invisible.