My youngest son went through that. When he started hitting and throwing things, I put him in a gentle body hold. Carefully, restrain him so he can't throw things. It's hard in public, but I used to leave the store, even if I hadn't finished shopping, if either of the kids threw a fit.
Right now, your son knows if he throws a fit, you'll react. The best reaction is to ignore the behavior, completely. My oldest son had fits, too. I would put him in the corner, any corner, even when I was in the store. Don't baby him if he's crying because you won't do what he wants. Be consistant.
You can't let him throw things or hit you or the walls. Show him a better way to let out the frustration he feels. Let him know that it's okay to be angry but he can't be destructive. One more thing. If you tell your son what the plans are for the day, or even from one activity to the next he may cooperate longer. He knows what to expect and will be prepared for it. Don't make the plans a promise, that just hurts them, but for example, you're going into the store, tell him how you expect him to behave. Then, make him follow the rules. Reward good behavior with lots of praise and a hug or two. It may take him a week or so before the good behavior starts. Good luck!!!!