I am not a trainer but I have a pushy dog who tries to dominate me and have worked with trainers for years for him. He is much better but it has taken a lot of work. I also have a client who has a dog that sounds like yours and what I did and what I am telling you a trainer told her to do with her dog.
I would start implementing training without a trainer (get a book, video, internet, etc). By beginning training you will be showing him that you are in charge. By taking the leader role it in theory, that makes you the pack leader. Small things like this may help eliminate some of the problems.
Some ideas:
1. Get a crate. When you are not home, people come over, or you just can't monitor him, put him in it. Lock it with a lock if he figures how to get out as he may.
2. Make him sit before he eats, before he goes outside, and you need to be the one to release him
3. When you start to have him out around people and he starts grabbing their pant leg do one of the following: shake a pop can with coins in it, take a baggie of coins/chains/something to make a loud noise, and toss it close to him (do NOT hit him) but just to startle him. Then get in charge of the situation by training him to go to a place to rest such as a bed or the crate.
4. You can train your dog to go to a resting place very easily and this can be used in many situations when you are not in control of the situation.
5. You can also set him up and use that as part of the training (ie: ring doorbell)
Jack Russell's are smart and need a lot of interaction to keep them from getting bored. Introducing the training may help to give him something to think about.
Good luck. If you have any further questions please message me.