A quick solution that might help (if you haven't already tried it) is to go to Settings->Input->Touchscreen and set "Button vertical spacing" to "Half-height". You can also try changing the "Button scale". On my Nexus 7 I actually prefer "Half-height" and 150% with the Analog layout.
If you want total control of the layout, just follow xperia64's advice. I strongly recommend you copy the skins directory to another location on your device, and customize these copies. The stock skins are occasionally updated when the app is updated, and your changes would be overwritten if you work with the originals. You can select your custom skin by selecting "Custom layout" in Settings->Input->Touchscreen->Layout, then selecting the appropriate directory in the menu below.
I've been meaning to write a skin customizer (like ePSXe) for months now but I keep getting sidetracked with other things. Paul recently updated the data structure for the skins, so it actually wouldn't be too hard now to throw together a set of sliders to tweak positions. It wouldn't be fancy like ePSXe but it would be a lot easier than working with the config files. Someone give me a deadline and I'll squeeze in some time to do it.