Hola:Por ejemplo, tenemos un TButton (Button1) y un TPopupMenu (PopupMenu1), ponemos en el evento OnClick del botón:
POINT P1, P2;
P1.x = Button1->Left;
P1.y = Button1->Top + Button1->Height;
P2 = ClientToScreen(P1);
PopupMenu1->Popup(P2.x, P2.y);
Se utiliza el método "Popup" del menú, las coordenadas que se le pasan son relativas a la pantalla y no al Form. Para convertir las coordenadas usamos "ClientToScreen".