You are calling PopupMenu.Popup, but there is also a PopupMenu.Popup(X, Y) where you can control the position at which the menu is supposed to appear. Note that X,Y are screen coordinates.
If you want to have icons next to the menu items, you must add a TImageList to which you add all icons, assign the imagelist to the Images property of the PopupMenu, and each MenuItem gets the index of its icon into the image list in the ImageIndex property.