I would recommend reading the Oh Crap book. He is older than she would recommend but there's a chapter about training older children and I think it's more about the battle of wills and how to deescalate.
Are you sometimes in nappies, sometimes not? If so, I'd definitely go no nappies other than when he's asleep. You need to give him control and if you're mixing, it can send the message that you don't trust him so holding the wee is one form of control.
Personally I wouldn't put underwear on him for now. It can give them the secure feeling of a nappy anyway. I would try to break the cycle of him holding it by leaving him with no bottoms for a day or two, then just put loose joggers on, no pants.
Don't ask him to go to the toilet - it's gives him the chance to refuse. Try to give him control by saying something like 'I can see you need a wee, the toilet is just there when you need it' and then walk away. (Peeking round the door!
)
If he does wee, tell him to hold it and lift him onto the toilet. He maybe hasn't linked the feeling of needing to wee with moving to the toilet.
Also if he's on the toilet but not releasing, try listening for the wee. Sounds silly but it just takes the focus off and can help them to release. I used to sing the 'can you hear a wee wee' song with DD 
Good luck!