It sounds like you are right in the middle of the "terrible twos". This can be a very rough time for parents and kids! Know that you aren't alone in this.
You are right when you say that your son is have difficulty expressing his anger. He is at an age where he knows that there are words for what he is feeling, but he can't find them. Your job as a parent is to help him direct that anger. Something I would say to my son is, "Use your words." I might have to say it over and over, but eventually it worked. It also helps if you say the things he can't say. This requires that you see things from his perspective. For example, you can say, "I know that you are upset that you can't have that cookie that was on the ground. I understand that you are sad that you dropped it. We can't eat cookies that were on the ground because they are dirty. Ick!" Empathy is the key to managing two year olds. This doesn't mean that you give in. It just means that you understand how big of a deal a dropped cookie is to him.
As far as discipline goes, I think time outs can work very well. You must be consistent. Sit him in the same place (or have a rug that you bring with you to daycare, grandparents, etc.) and make him sit. He should only have to sit for two minutes. Generally, it is a minute per year old. That is long enough to give him the message. After time out, you need to give him a hug and show him that you care about him too. Make coming out of time out a positive time for both of you. You can also put his toys in time out if he won't stay in a spot. Take that truck that he just banged into the wall after you told him not to and put it up high for two minutes. He will stand in one spot and scream while looking at that truck. It is like timeout, only you don't have to wrestle to keep him there!
A note about spanking...I know there are a lot of people who think spanking works. I don't think it works long term, and it sounds like in your case it isn't working in the short term. If he is hitting, he may just be modeling you. It doesn't make sense in the mind of a two-year old why you hit and he doesn't get to do it too. In his world, everything that you do is seen as a gold standard, and he idolizes you. Spanking is counter to all of that.
Try doing consistent time outs and having empathy for one month. If he isn't better than when you were trying spanking, consider going back to it. But ultimately research, and my experience, shows that spanking simply creates more problems than it solves.