She came again at 9 weeks and during the lesson told us that he was showing very dominant characteristics and told us to flip him on his back, pin him down by his neck, growl at him and if he didnt "submit" by rolling his head back and going limp, to shake him.
Like Jean, I don't believe any one style of training/correction is right or wrong. And like Jean, I like to borrow from all styles. However...
In your case, I think your trainer was fundamentally wrong and I think that her advice set you, and the puppy, on the wrong course from the start.
At that time, I think time would have been better spent playing to form a bond, with daily grooming to help the pup get used to touch, and with a gentle introduction to basic (clicker-based) training. Even thinking of "dominance" at that age seems like a nonsense to me.
We all need a puppy to learn that it can approach without fear, will get 'paid' when it performs well, and will be taught appropriate behaviour when it gets it wrong. I believe that your trainer failed completely on all counts, but in particular on the last count.
For example, your dog gnaws at your finger, you 'dominate' it in order to make it stop. The dog stops, and all seems well. However, you can bet your life that the dog will repeat the same thing again, maybe even minutes later, particularly a puppy which will endure the teething period, and will seek to relieve the discomfort of his gums. So you have to look at why it stopped and why it will then repeat the behaviour.
It stopped because it had no choice; you physically prevented it. It repeated the behaviour because you didn't fill the vacuum by showing the puppy what the right thing to do at that point is. Now, you could have kicked the dog and that would work because the cost of biting you far exceeds the pleasure it gives. However, what you will end up with is a dog that just won't approach you. It won't approach you because you are unpredictable and you potentially threaten its existence.
What I have always done in that situation, and always successfully, is give a sharp "ah-ah" sound, quickly give the dog something that it can "legally" chew on, such as one of its toys, and I withdraw my attention by walking away. The dog very quickly learns that if it nips me, it loses my attention, and it learns an appropriate behaviour to fill the vacuum left when I say no to it chewing on me.
As Jean says though, you have every chance in the world of reversing any damage that has already been done. The pup is still very young and still very open to change. It will take persistence and consistency, but I have absolutely no reason to believe that you can't still end up with a perfectly normal dog. Here is what I would do, in your position:
Attention Withdrawal
As mentioned above, when puppy nips, give a sharp sound, give it a legal toy, and walk away for a minute or two. Don't talk, don't even look at the dog. It must get no attention, not even negative attention. Maybe even close the door behind you. Once the time is up, don't hold a grudge, and treat your dog normally.
Dog Play
Your dog is still very young and so if the lab next door has any bad habits, your dog may well learn them too. We all love to see our dogs playing with other dogs, but you really do have to consider the priorities here. Give your dog a solid foundation first. Play with other dogs can them come later. Please give it serious thought.
Invisible Hand
Purchase that light-line and keep it attached to the dog all day, providing it is supervised. This line will become your new "invisible hand" for pulling him off couches, away from people, etc. which will immediately reduce the number of accesses your nipping dog has to your real hand. The fewer accesses it has, the fewer opportunities it has to practise its biting habit.
You might even start to hook the line over the door handle when you are on the phone, so the dog can't nip you when you are too busy to react.
Create Positive Touches
I've had to use this method before on a previous dog, and it worked wonders. Ensure you have treats with you. When your dog is relaxed, perhaps when you're all relaxed watching television in the evening, get up, give it a quick stroke, click, reward, and sit back down again. There is no need to even look at the dog if it looks up at you. (If you choose not to use a clicker, just give a "Good dog" or similar.) Yes, that's it.
This works because you are not giving the dog the time to react to your touch, and you are associating your touch with good things - the rewards. You are also not staying long enough for the dog to get stressed or anxious, if indeed that is what it does anyway. Repeat this several times per day - the more the better - but make sure that you don't try to push your luck. After three days, just stroke for a second or so longer, and keep on repeating this, stroking longer and longer.
Have a Universal 'Wrong' Marker
I think, to make things clearer for a dog, it needs to be able to instantly recognise when it has messed-up. All too many people switch between things like "bad dog", "no", "stop", "oi" and more. I personally, use a sharp "ah-ah" and them immediately correct. Whether my pup walks slightly ahead of me on the leash, or pees on the carpet in front of me, it knows that if it hears a "ah-ah" sound, it's the wrong thing to be doing, and immediately looks to me.
Nothing in Life...
I am a firm believer in this style. My puppy has to earn everything it gets. Nothing in life is free. I believe that it builds respect without the need for dominant actions. I control the things that the dog cannot possibly control for itself. It's unlikely that the dog will abuse me if it's reliant on me for basic needs. Basically, if it wants something from me, then I want something from it in return.
If it wants me to stroke it, then it knows it can't just jump up at me to get it. It needs to sit by me.
If it wants feeding, then it can't dance around my feet, but must respond to a random command in order for me to put the bowl to the floor. It must then wait for a "tuck-in" command. If it doesn't, I take the bowl away for two minutes and try again. Each time it doesn't, I add a minute. She always responds and waits first time now.
If I open the crate, it can't just bolt out to get attention and freedom. It has to wait in there until invited to come out. When she initially tried to bolt out of the door, I just closed it quickly, and calmly said "waaaaait".
It cannot create havoc at walk times. It must sit to have the leash attached. It must wait while I exit through the door, and it must repeat the process when we return.
None of the above are about dominating my dog or being "leader". I don't even want a "leader" in our relationship. It's about the dog having control of her own emotions and building focus and concentration. In my case, my Mother-In-Law has cancer of the bowel, kidney, and lungs, and so it's imperative that our dog learns to control itself in order to ensure her physical safety when she visits.
I have been so concerned with how to tackle the dominance problem and following all of the rules
What is particularly sad of course, is that I think you've been concerned about a problem that wasn't there in the first place. You were just ill-advised. Do as your dog does every day; forget what happened yesterday and the day before. Take today as a new start and learn to enjoy it, even the bits that go wrong.
Whenever the pup gets something wrong, look at yourself first to see why it failed. Are you expecting too much too soon? Did you not make it clear enough? Are you not being consistent? Did your body-language not match your verbal command? It's sometimes hard to accept, but it's very rarely the dog that is wrong, when you really consider all the factors. It's usually us mere mortals.
Please remember, the pup is only a few weeks old. You have an entire lifetime to teach it. Take a bit of that pressure from yourself and have some fun.