He's definitely entitled to his feelings, we all are, but it doesn't entitle anyone to behave badly.
To guide him out of his extreme behavior put the responsibility on him to calm down. Don't give in to the whining, crying, etc., by asking what is wrong, cuddling him, or trying to make it better in any way, simply say in a matter-of-fact way "I can't understand you when you cry or whine, you need to stop and use your words." If he continues take him to his room, tell him he needs some alone time and can cry, etc., in his room, not in front of anyone. He comes out when he has calmed down and is not longer crying. And trust me, he WON'T cry for half an hour in his room because he won't have an audience.
At 4 he should be able to use his vocabulary well, always encourage him to do so and tell him "You need to use your words, don't cry/whine," at the beginning of an outburst. When he stops crying or whining you can ask him, "How did you FEEL because I said no, so-and-so left, etc?" and let him tell you if he is angry, sad, hungry, tired, etc. Anytime he starts to whine or cry about anything put a finger to your lips, look at him and say, "It's time to use your words." If he stops and tells you, great, otherwise take him to his room and have him stay there until he's calmed down. Thank him for telling you how he feels and remind him to always tell you, not whine or cry when he is upset.
Always put the responsibility on him for his behavior, don't make excuses (not saying you do) because the world won't. You know he's sensitive, so your goal is to de-sensitize him. Better now than after he behaves this way in front of friends and they tease him and call him a big baby.
As far as embarrassment over picking his nose, he obviously knows it's unacceptable or wouldn't be upset that you were telling dad. So, you tell him, "Do not yell at me, I wouldn't be telling Dad if you hadn't done it, so don't do it. Use a tissue when you need to clean your nose." Someone not waiting for him to put on his shoes is another example where he should use his words, asking nicely, "Will you wait for me?" which can go a long way. And if they don't wait, oh well, he doesn't need to cry about it, and surely he can follow them outside? And, at playdates remove him and take him home (or if in your home put him in his room,) because annoying someone is not polite or the way to get your way.
Like I said, put the responsibility on him to behave, to use his words, to be polite...you're actually showing him love and concern by doing so.
Hang in there!