Andocken kannst du ein Fenster einfach über die eigenschaft ScreenSnap von TForm. Ich glaube über SnapBuffer kann man definieren, ab welchem Abstand das Formular andockt. Bin mir aber jetzt nicht ganz sicher wie das heißt
Dann kann man das Formular aber trotzdem noch außerhalb des Desktops schieben... Da musst du wohl eine manuelle überprüfung vornehmen