Yea i fully agree with everything myenzoorka said....it is very normal for children to be doing that at this age. And letting him kno that it is not right to show ne1 but parent or doctor his penis. Nor humping friends n family is very important. He needs to learn bout havin privacy . My father used to bathe me til i was about 6-7 and it wasnt til his gf taught me and my sister what privacy was and how to keep our body parts to myself not letting any1 see it.
Well, sexual curiosity is normal for a child of that age. Your son does sound like he's taking it a little further than some kids - but not alarmingly so. You really should let him be able to explore his sense of self when it comes to his penis. Be sure to let him know that his penis is a private thing. That he can expose it, explore it, etc. in the bathroom (or his bedroom) when he is by himself, but that doing so is a private thing. Remind him that it is impolite or rude to share/show off private things with others. When he starts his sexual behavior, remind him to go to the bathroom if that's what he wants to be doing at that time. Most importantly, let him know that not only is it rude to do such things to others, but it is unacceptable for anyone (other than the doctor, nurse or parent) to ask to see/touch/etc. his penis. This is a perfect time to introduce the concept of his body being his and his alone.
I have a 6 year old son who started such behavior around 3 or so - and he's much better at being private about it now. Although, he does have pride in his penis and likes to talk about it (which he does in private at home with me or his dad)... we still have some slight issues with streaking, but I think it has to do with his big sister's reaction more than anything.