Also ich würde ja einfach ein PopupMenü erstellen und dieses anzeigen, wenn der User auf den Button klickt...
Delphi-Quellcode:
procedure TfrmMain.Button1Click(Sender: TObject);
var
P: TPoint;
begin
P := Point(Button1.Left, Button1.Top + Button1.Height);
P := ClientToScreen(P);
PopupMenu1.Popup(P.X, P.Y);
end;
...
...