Hello @binoyte ,
PropertyManagerPage, a vast subject...
It allows a user/SW interface to be integrated into the SW environment, with standard and specialized components, all with a Solidworks look.
With three levels of containers: the page itself, tabbed cards (PropertyManagerPageTab), and groups (PropertyManagerPageGroup).
Each container can receive various and varied controls, similar to those of a UserForm (such as Label, TextBox, Button, etc.), and other specialized controls (selection of SW objects).
But the management of the position of the controls within the page is quite basic.
The problem is that Solidworks itself defines the position of the controls in the PropertyManager page, at least partially.
Let me explain: at the beginning, a tab card is created in the page. In this card, a button (PropertyManagerPageButton) and a group (PropertyManagerPageGroup) are created, in this order. We would logically expect to see the button placed above the group. In fact, it is placed underneath, thanks SW.
Because SW gives priority of position to the group(s), the buttons will come after...
It is also impossible to fine-tune the position of controls within the same container.
Since a Label and a TextBox are defined in the same group, they are by default placed one below the other with only one indentation, single or double.
This limitation can be circumvented by casting the Label (of type PropertyManagerPageLabel) to the OLE Variant type, and the TextBox (of type PropertyManagerPageTextBox) to the OLE Variant type. The controls thus take advantage of the Top and Left properties of their " ancestors " (such as PropertyManagerPageControl), which allows them to force their positions in the container.

But there too with limits since SW keeps all this under surveillance: the Left property seems to be limited to the interval [0... 100], making it impossible to place multiple buttons across the entire width of the page.
It is impossible to complete the line with 4 or 5 buttons.

As for the icons in front of the page components, they are displayed by the SetPictureLabelByName method defined for the controls. Again, you need to cast the components to the PropertyManagerPageControl type, or an OLE Variant neutral type.

Not to mention a few other miseries...