What you've written, does not sound out of the normal sphere of behaviour for a 4 year old (is he nearer 3 or 5?). But it is testing.
Firstly, it's sort of a good reflection on you & your wife, that he feels able to act out at home. Not easy for you guys though.
Secondly, I would think about what is going on for him at the moment. Has there been any changes... new baby, new school, friends, rows at home. If you can try to work out what the motives are behind his behaviour... i.e. ordering you around; apart from needing to fine tune his social skills (my 3 year old can be very rude too), maybe he needs more control, rather than less. this may sound mad but if you give kids as much control as you can (obviously within reason and with limits)... they won't need to act it out. for instance, giving him a choice of what to wear, what he wants to eat, allowing him to lead in play. In theory, this will help when you need him to something that he doesn't have any control over, like holding your hand when he crosses the road.
Think also about the amount of connection time you have together, it could be his behaviour is a way of reconnecting with you. Even spending 10 minutes of your undivided attention might help. Good luck!