if you have not seen the Dog Whisperer good for you, don't start now (no offense Smexy), he's not being dominant he's just doing what any animal (including most people) would do, getting away with as much as possible. He wants something so he sees what works, growling does. Be happy he warns you, if he didn't you wouldn't stop trying to pull him off of stuff and then you'd get bit. It does sound as though he was from a puppy mill or very poor breeder so he could have a tendency towards aggression (if you had a litter of puppies you cared about would you give them away to any person who happened to be in the parking lot? hopefully not, so chances are his breeding dogs were not of the highest quality)
What he needs to learn is a command that means get off of the couch and he has to learn that it is oober fun to listen to that command. He should get a place of his own though, some place for him to go when you don't want him on the couch. This could be a big comfy dog bed or a properly sized crate with bedding in it. Keep this in the room with the most furniture in it. Then it's time to practice.
Fill your pockets or a fanny pack full of small training treats. Take your dog's collar off (no more pulling!) and entice him onto the couch with a command like "up", when he goes up say "good boy" but nothing more. Now you have to figure out how to get him down. What works depends on the dog. You could lay on the floor on the other side of the room and make a strange noise, roll around on the floor, run around the room in a circle, run out of the room, pant like a dog (sometimes it works, I think they think you are having some sort of medical disaster), stand facing the corner completely silent like your possessed or whatever to make him come investigate (but don't call him, we want him to come off all by his own doing, not because you told him to) and as soon as he leaps off make the biggest deal out of it. "Gooood BOY!!" run over and give a few treats, lots of pats and happiness, getting off the couch is the greatest after all. Then again, tell him to get back on with "up" and say "good boy" then walk away and do it again or one of the other ones if the one you used before does not work and have the same reaction when he gets off. Once he starts doing it regularly, he'll jump off when you start to do the weird action add the command word "off" (not down, down is used to mean lie down, don't confuse him). Go and do the weird thing but as soon as he starts to jump say the word "off" and then praise as you did before with treats, and praise and pats. Soon he'll learn to associate the word off with you doing your strange thing and him jumping off. At that point you can stop acting strange and just say the word, use the same amount of praise though for a while.
Once he learns what "off" means and listens you'll stop setting him up. Now you keep your pockets full of treats and sit on the couch with him (if he's not on invite him up). Wait a few minutes (watch TV or something) and then tell him "off" (he may not understand that you saying "off" while you sit is that same as you saying "off" while you stand so if he does not listen while you are siting get up and ask again) if he ignores you go do one of the strange things to get him off. One way or the other when he gets off say "good boy!!" while you give him a treat and then go back to watching TV. If he is too close to you or looks like he wants back on the couch stand up straight and serious like and walk straight towards him saying "back, back" (not yelling, just say it normally) and when he's a good distance away, say "good boy" and go sit back down. Repeat until he stays away. Ignore him if he barks. If that's a real problem you'll want to teach him to go to his bed on command as well, but hopefully he'll choose his bed without being told. in fact you may want to often hide treats in his bed so he gets a super surprise for choosing to lay there.
No more pulling, I think if people started pushing and pulling me around like that I'd growl too (even though i know we all do it to our dogs), something like "you coulda ASKED" because dogs don't know we don't speak dog.
What sorts of things does he want that he starts growling about? Like when he wants food you have or what? Give me some examples so I can think about how you can handle this safely. I think he's just learned how to get what he wants, if it works he'll continue, the only complication would be if you ignored him whether he'd drop it or escalate. I think you'll need to work on some self control exercises too, are you willing to try clicker training?