Is it at all possible to just leave him up and let him put himself to bed? Probably sounds ridiculous I know, but I nannied a child with a similar problem a few years back.
As it was school holidays, we tried this technique. For about 4 nights he went to bed when he felt like it [or when mum & dad did], so he was going to sleep at midnight, 1am, 11pm etc. One night he fell asleep on the couch and they just carried him upstairs and put him to bed fully clothed.
Most of the time he was still getting up at his usual time. He was ok in the mornings, playing by himself until his clock showed that he could go into mum & dad, but of course he was very tired and irritable and fed up with not having a bedtime story, being tucked up etc.
On the 5th night, he begged mum to put him to bed at around 8pm, slept right through and never looked back.
You say he's 4, so has he already started school, or is he about to? Children often play up like this when they are anxious about something, but can't articulate it. Try to see if you can identify anything that's bothering him. Drawing and painting or creating a story are good ways to let them express themselves.
HTH.