I was having the same problem! And then I had a genius idea, and its been awesome ever since...
I get one of DS's baby washclothes, and fold it into a little rectangle.. and as soon as I lift his diaper, I cover his manhood.... It works, because when I pull up him up to clean his behind, it stays between his thighs... Then I move the washcloth to the left, clean.... move it to the right.. clean.. same for up and down.. and then RIGHT before I pull the new diaper up and over, I wipe him fast!
I havent been peed on in 2 weeks!
Do you wait 15 minutes after LO pees or poops to change his diaper? DD will pee/poop, and then she will pee/poop again 5-10 minutes later. If I tried to change it too quickly she tries to poop on me. (DS did the same thing.) lol.
It will get better as he gets bigger.
also, put the clean diaper under his bottom before you take the old diaper off. Then as soon as you open the diaper, get him cleaned off super quick and fold up the top of the new diaper. Super quick changes!
also we use burp clothes over his penis if he has a messy poop that will take a while to clean. The cheap white walmart clothe diapers are perfect for this.
DS pooped on me once. He got my arm. It was nowhere near his butt. He's like a little poop geyser. Fortunately, a) I have enough experience with poop that I thought it was more funny than gross, and b) my mom was standing right there and could watch him while I went and washed up.
Oh, and during the course of one night he managed to both pee and poop on the wall. Keeps me on my toes...