Itemwidth should work fine for you, lets see here. You can specify item width in the styles OR in the menu items individually. If you put it in your styles, any menu that includes that style will be the width wide. If you have any text that is longer than the itemwidth, the text size will take presidence over the itemwidth, i believe. I would recommend putting it into each menu Item (aI("text=....;url=....;itemwidth=75px;"))
It will work for both horizontal and vertical menus. In horizontal menus, each item will be the width specified, regardless of its neighbors. But in vertical menus, lets say you set each item to be have different itemwidths, the menu as a whole will take the size of the largest itemwidth (or largest menu item if text makes it that way). If you have long text, make sure you force a line break in there.
Regards to your headers problem. Looking over the properties of the menu, I dont see the ability force the cursor to change. I dont see it as an extremely tough addition to the menu, and Andy may very well already implemented it into the menu. But as of right now, I don't see the ability to do it...yet. I know you cannot set styles on a per item basis but you can set alot of different properties per item. Check out
http://milonic.com/itemproperties.php and you will find numerous properties to change to get your 'headers' looking differently and still clickable. Dont make them type=header anymore, just change their style in the aI() function.
Hope this helps.