That thread is telling you how to change your CSS to overcome the styles added by the javascript. The !important can make it override the styles added by the javascript, so its a matter of figuring out what is being overriden by hard coded style the javascrip adds and then make your CSS more important to compensate.
You are correct that you could change to TreeView and style it the same way, it does not seem to have the javascript adding styles like the menu does. Really wish the had a way to disable the javascript on the menu but they don't.
ShowStartingNode shows a node called "root", it should be false to not show that. I would not change any setting on the SiteMapDataSource.
Typically PageMenu is used in conjunction with SiteMenu where SiteMenu is the parent and would show top level pages and the PageMenu would show children below the current page, but I think you could show all levels in PageMenu by setting StartingNodeOffset="0" on the Menu not the datasource.
Hope it helps,
Joe