Why does shower gel / shampoo foam a lot more on hairy than non-hairy body parts?
It's mainly due to the surface area and the spacial distribution of hair compared to that of hairless skin.  

A typical human hair width is around one micron.  Given the various hair length and thickness (space between hairs) on the different hairy regions of the body, there are orders of magnitude more surface area on which soap bubbles (foam) can adhere as compared to smooth (or even very rough), hairless skin.  

The second part of that answer, the spacial distribution, just means that the hair gives support to sustain the bubbles so they don't immediately collapse.  

Short answer, but I think this pretty much covers it.