My four year old is the same way.
We found that we have to start his bedtime routine earlier to give him enough time/warning to get into the bedtime frame of mind.
He HAS to be in bed by 8:30pm at the latest or else he's a BEAR the next morning.
So typically bedtime routine starts right after dinner (we eat at 6pm so by 20after we are getting him ready for bed)
It takes about an hour to get teeth brushed, pj's on, bathroom sink cleaned out (bright blue toothpaste!) clothes picked up and put in the laundry. Pottied, and get a cup of water.
Then Daddy reads him 1 or 2 stories. And he is expected to stay in bed from 8pm on...of course he spends the next 30-45minutes jumping out of bed running into the living room and declaring he's not tired. But generally by 8:30-9:00 he's asleep.
We've also found that it's easier to get him to bed if his TV time is cut off around 4pm. (He gets to watch about 1.5hrs of tv a day) That extra stimulus later in the afternoon is too much.
You may want to try Melatonin if nothing seems to be working. It is available at health food stores or herbal markets. Melatonin is the sleepy hormone that our brains make. It can be mixed into a cup of juice (or you can get the pill form that just disolves in your mouth) he'll be drowsy within 20minutes and will sleep deeper through the night.
Oh and a good calcium Magnesium supplement might help too. Mag makes you relaxed enough to fall asleep and the Calcium aids in your bodies repairs.