Your very difficult job as a parent is to adapt all the time to the ever changing needs of your child.
Now that he is entering the world of toddlers, you have to do your absolute best to communicate with him and find some ways for him to communicate with you.
All the things you describe are only due to frustration.
Learn and teach him (or make up your own) sign language (just a few signs can make a big difference), use always the same words to describe actions, things and activities that are part of his world. Watch him a lot. Teach him how to respond to your simple questions. Know and keep in mind what he likes and dislikes. Also be very imaginative and redirect his attention before his frustration takes the better of him. Let him know by your attitude what is acceptable and what is not. Try not to use the word "no" all the time, unless it is really necessary, or use it diluted in a sentence.
Also, what I would consider the most important point : show him that you care. When he is frustrated, when he cries, don't let him calm down on his own. Teach him how to say "oh no!" with the face and gestures that go with it, so that his frustration will go into this expression rather than building up inside. And then help him find a solution to his problem.
I have two strong willed daughters and I can honestly say that I have NEVER experienced a tantrum from them.
Good luck!