He just sounds like he cannot communicate, so he is totally frustrated. He may not even know why is is upset, angry or frustrated. All he knows is he is not happy at that moment. You need to help him figure it out a little bit.
Give him choices.. Also predict his responses.
If you are going to give him cheese, you know he will want more, so just cut the pieces of cheese and hold a few pieces back. If he asks politely for more, then give him another piece (he would have had anyway) and he will think he got his way,.
Instead of telling him no all of the time, redirect his attention..
Example he wants to play outside, but you are not ready for that.. Instead say," I need you to help me find the lost truck.". Then have him do a kind of hide and seek for his toy truck.. It takes away the outside situation for a little while.
I also used to give our daughter a heads up about stopping an activity.
"In 10 minutes, we are going to the store.." "We have 5 more minutes till we go to the store. Please pick a cereal bar to take as a snack."
"Please help mommy find her purse." "Do you want to take juice or water in your sippy cup?"
Also watch for his reactions and his state of mind and give him the words. "You look frustrated that it is raining outside." "You look angry because you want to play with sisters toys. Do you want a hug, or do you want to look for a toy out of your room?"
Then when he does hold it together, let him know you noticed.
"I like the way you were soft and gentle with sister."
" I like the way you helped me find my purse":
".Thank you for being patient while we wait in line."
You will feel like you are on stage narrating a play all day long, but all of these words are letting him know what he is feeling, what he should or could be doing.. You are giving him control.
Hang in there.. He will catch on very quickly..