Hi M.
Congratulations on having a very normal two year old! This is exactly what kids do at his age. The way to get through this successfully is to start by understanding the underlying emotional/developmental need, and helping to have that need satisfied. I used to be a preschool teacher, and I loved working with the 2's. I feel that this age stage can be so misunderstood and under appreciated (hence people calling it terrible two's).
I found Erik Erickson's model on psycho social development very helpful in explaining this. At that age, much of a toddler's behavior might be misinterpreted as defiant when they say "no", or insist on doing things themselves, or assert their will. What they are really trying to say is "no, I don't want you to do that for me because I am fully capable now and I want to show you that." What is so important is to affirm to the child that you see him as fully capable and let him have the experience of competence - both via your encouraging words to him, and by letting him demonstrate it. I cannot stress enough how important this is. Even when setting boundaries around this issue, it is important to still affirm something positive ie: "Yes, I know what a great artist you are, but you need to draw on paper, not on the wall."
This is such an important stage, and it is so important to let him do things himself and to praise him for his accomplishments. Now, keep in mind, that this may require extra time in getting dressed and such, so try to set yourselves up to win by remembering that some things may take a little longer as your little one who is growing up takes on more tasks himself. Do make a point of giving him acknowledgment for what he can do. If you get into a situation where maybe you don't have the time to wait for him to do something, you might try coming up with something else for him to do instead, where you are so impressed and appreciative of his help. Again, it's that feeling they are looking to satisfy, of showing you how capable they are.
As for the sharing, well, this is another phase. I don't believe in arbitrarily forcing sharing, but I do believe in setting up some guidelines. This really depends on the situation and what is to be shared. In a group setting, where kids need to share toys, there might be a rule about having a toy until a song ends, and then it's time to pass it on (when a toy is in demand).
If a toy is a particularly personal one (at home), then I would not make the child share it. With my son, I would give him a certain amount of room to be able to know that things belonged to him and that he could feel safe that they weren't going to be taken away from him. To encourage sharing, I would suggest trading toys, or have other toys to offer other kids. Sometimes he would let go a toy, sometimes he didn't, but I let it be okay. I wanted to give him a sense that he did have things that belonged to him, that he could feel safe that they were his, and then to find gentle ways to provide options for sharing. Back to the time limit idea, it might work to ask if someone could see his toy just for a minute and then give it back (get agreement from both children on this). You could suggest letting the other child see a toy, while you sang a song, and when the song was over, the toy went back. That did work for me, both with my son, and in the classroom. This is really a process of facilitating cooperation, and respecting their needs, not forcing sharing.
When things are approached from a standpoint of asking what the child's underlying emotional need is that they are seeking to satisfy, so many things can be resolved more easily. When we can help to satisfy those needs, then they have less of a need to force the issues and can move on.
And of course, this too shall pass.