Ich (Delphi 2006) kämpfe gerade mit demselben Problem - mit dem Unterschied, daß es A. in einer nicht mehr praktikablen Kombination bereits anders klappte, und B. der Workaround hier auch nicht zutrifft.
Grob gesehen habe ich die gleiche Situation: eine linke Leiste, eine Kopfzeile oben, eine Fusszeile unten.
Da ich hier dieselbe Struktur allerdings in einem Dutzend Fenstern habe, verwende ich dafür eine eigene Klasse, die ich in der Formular-
Unit in die Deklaration des Formulars einsetze. Dann erzeuge ich im constructor Create dieser Klasse die Panels. Ein Extra-Panel für den "rechten" Bereich (alClient) ist also nicht möglich, da zwischen den drei Panels beliebiges im Form-Konstruktor unbekanntes liegen kann.
Funktioniert hat es übrigens, als nur das linke Panel in meiner eigenen Formularoberklasse erzeugt wurde, und Kopf und Fuß im Formular selber waren - da hatte es die volle Höhe. Nur habe ich diese natürlich im Zuge der Vereinheitlichung auch verschoben, identisch aussehende Panels überall einzeln zu haben ist ja auch nicht das wahre...
Möglich ist es also, nur wie?
Ein einfaches FPanelLeft.SetZOrder(true) aka BringToFront oder SetZOrder(false) aka SendToBack, auch mit folgendem Self.Realign bringt nichts.