Hi,
I had a similar problem with my little one, and this is what I did:
During naps, I did not go to him unless he was crying (at which point I would go in and do pat/shh and walk out again, then wait 5 mins, then do the same, then wait 10 mins, etc).
I would also look at how long you are keeping him up and how long your wind down time is - he might be awake too long or overstimulated (hence he can go to sleep but then pops up again).
He wakes up since 30-45 mins is one sleep cycle for a baby, so when he comes into a light sleep he wakes himselfup. He needs to learn how to get himself back to sleep. This is hard, but I have to say from personal experience that the sooner you let (teach) him to get himself back to sleep the better it will be.