Sounds just like my dog, except you're lucky you're getting a growl, not snapping.. My dog doesn't growl he just snaps or bites without warning...
Part of the problem could be dominance like you said. It's also likely that he was never actually abused just badly socialized and raised. Many dogs will show these behaviours if they're not taught as puppies not to. It's also possible that he was raised in a situation where guarding is necessary - a house with children that might take his toys from him for example. It's instinctual to want to guard what he wants.
You're absolutely right about not trying anything physical. It's not safe for you and could make your dog react much worse the next time.
You have a few options. Because he's mainly warning you now, and not snapping or biting, the situation should be manageable. You can try to find a reliable behaviourist to help you. It is expensive, and although it didn't help us it has helped many people.
Or you can do what we did. First and foremost, keep a leash dragging from his collar in the house. That way if you need to get control (to take him outside or move him to a different place) you don't have to reach for his collar. You can simply grab or step on his leash. With my dog he's generally fine when you reach for his collar unless he has something he wants or if he knows that you're angry, or if he knows that he has to go to bed. At those times he'll bite with almost no warning. He's always got a 6' flat nylon lead following around behind him.. We never, ever tell him to do something and then back down because we can always get control safely. The longer we have him the more he's realizing that he will do what we want him to, voluntarily or not, so he volunteers more and more often and we rarely resort to stepping on the leash anymore..
As far as having things you don't want him to have there are a few different things to do there. One is to find a food that he loves (with Kaiser it's any kind of meat, particularly the extra smelly stuff like bacon or small pieces of hot dogs we keep cut up in the fridge). Then "trade" that food for whatever he has. He'll learn that bringing and giving things to you equals treats and therefore be more willing to do it. Try not to tell him to drop it unless you have had the opportunity to specifically train him for it. They don't know automatically what drop it means so they might just get more frustrated. They know by the tone of your voice that it's a command, but they don't know what you want them to do. Some dogs cannot deal with frustration and will lash out as a defense. You can teach it to him during other times like playing fetch, but don't use it when he has something unless you're positive that he really knows the command inside and out.
The longer you have him, the more understanding he'll be. As long as you never EVER make a command that you can't enforce (don't tell him "out" of the room unless you know that you can safely remove him if he won't go on his own) he'll learn that when you say something you mean it and expect it to be done. He'll begin to trust you to make major decisions for him and he'll start to understand that doing what you ask of him brings rewards. Try not to use punishment - a stern NO followed by a command (that he knows) to do something else should be enough. The two other main points that I can think of are confidence and prevention. Prevent him getting as many things as you can. Really go through and puppy proof the house. If he can't get things he can't have, you won't have to try to get them from him. And when you do have to take something from him, always have treats on hand (I keep small cups of kibble in every room of the house so that there's always something nearby) to trade, be firm but happy, never angry, and BE CONFIDENT. Dogs are brilliant, they will not allow someone who is unsure of their leadership to rule the pack. If you hesitate or seem nervous, he'll never let you take control. It took me months to learn that, but if I approach Kaiser in a happy, fun way with a treat, no matter what he has or how important it is to me, he'll normally trade for it no problem. I just walk up and say "what have you got, you crazy boy?" and take it, and then give him the treat.. For a few months I was understandably nervous knowing that I risked a nasty bite but as soon as that nervousness was replaced by determination that this dog will not be in control of my household, we got that straightened out.
Granted it took months to get there (I've had him for almost 6 months now) but between puppy proofing and his trust in me that I know what's best, we're doing well..
If you don't think that you can do any of this safely, get some help from an experienced behaviourist or trainer. Keep in mind also that my dog is only 30lbs but nothing we ever did involved physical force in the slightest way. I know that I'm forgetting some of the things we did, if I think of them I'll post them.. If you have any other questions feel free to ask as well. There are other people on these boards that have resource guarding dogs that will have great advice as well I'm sure.. And remember that everything I said is what worked for us and our dog, and may not necessarily be the most appropriate tactic for your dog.. That's a judgement call you'll either have to make, or pay someone to make for you..
