Thank you all for the advice and ideas. We had him neutered some time back and that seemed to mellow him for a little while, but he got over it!
We didn't always lock him up when people came over, but after he trapped a few people in their cars and went after our neighbor when he came over on his Gator, it became a necessity. He has even nipped at people after they have given him treats, and while wearing a muzzle! Our little neighbor girl was driven to tears when he got aggressive while she rode through on her bike.
BadgeBunny - Thank you for the solid points, I have no desire to pawn my problem off on someone else. I will only consider giving him to someone who has extensive experience with dogs his size and has dealt with behavioral issues.
YIKES! I didn't think you were (trying to pawn him off on someone else). Sorry if my post made it sound like I thought that.
You might try Complete Idiots Guide to Positive Training and The Cautious Canine
Actually ANY book by Patricia McConnell is a WEALTH of information into canine behavior and the anthropological roots behind it, but this one deals specifically with aggressive behavior.
And I thought of a couple of things you might work on while you are waiting on the books to get there. Every adult who is going to be giving him commands needs to read both those books also. Consistency is important.
I have two all encompassing commands:
1. "Wait" Some people think this is the same as "stay" but it is not. I don't care what my dogs are doing, "wait" means stop right there and watch me. The easiest way to train this command is to make your dog wait whenever he is coming into or out of the house. Go to the door, tell him to "Wait" and then when he pauses open the door, point where you want him to go and say "Inside" and let him out. He has to wait calmly before you tell him "Inside" and it's OK if that calm is only for a second. You can get longer with the wait after he understands what you are after. My dogs can be off at a dead run (after a squirrel --- EGADS!!) and I can scream "WAIT" and they will stop dead in their tracks.
If he likes to go for car rides, take him up to the car door and tell him to "wait". Then tell him "inside". Same thing when you get home ... Open the car door, make him wait for a second or two and then tell him "inside" and let him out. DO NOT LET HIM ANTICIPATE YOUR COMMAND. He has to wait for you to say "inside" before he gets the treat.
I used to have 3 dogs here, two of them big dogs, one a medium size one. The medium sized dog LOVED to chase the cats. Once he broke ranks the other 2 were off like shots! "WAIT" was my desperate attempt to not get bowled over at the front door one more time. It worked better than I ever thought possible. Sometimes I would make them all wait just because it was fun to have everybody's undivided attention ... well, that and it was good, positive reinforcement! lol After a while whenever they would come up to the threshold of a door they would just automatically stop and look up at me, waiting for me to tell them "inside", even without the "wait" command ... That is what you are looking for! lol
2. "Inside" It basically releases him from the "Wait" command but I still control him because he goes where I tell him to. (Where ever I point.)
Get him a crate. It needs to be big enough he can stand and turn comfortably in it. Put it in a room that is quiet and away from everyone else for right now and start getting him accustomed to it. Five minutes here and there ... always with a treat and a command. I use "inside" and point for EVERYTHING ... Get in the crate, get in the car, go in the house, go in the yard ... as long as I am pointing where I want my dogs to go "inside" actually means "go here for me". Again, times in the crate can get longer as he becomes comfortable. NEVER, NEVER, EVER put him in that crate as a punishment. For right now go ahead and put him in a room by himself when company comes over but not in that crate. The crate needs to be his "safe haven" not his own personal hell.
Leave the door open for right now or just push it partially shut (but don't latch it) for a few seconds. If you can get him to sleep in it all the better. He needs to feel secure there.
Both of these commands are easy to teach because you can use them for EVERYTHING. "Wait" gets him to focus on you ... especially if you use it when he wants to do something (go in the house or go out in the yard) ... after he gets the hang of it he will start watching you for guidance when he comes to a door. A good thing if you need to stop him.
Once he figures out what is going on mix it up a little and sometimes he gets a treat, sometimes he gets petted and a lot of atta boys. Make it a game. Everytime you want him to go from one place to another, especially if he has to go through a door, go up to the door, stop and make him "wait" first. Then point and say "inside". You can do this a bazillon times a day and not have to dedicate a specific time to "train" him for it.
A couple of other things and then I will shut up ... Even with training, depending on his fear level, you may never be able to fully trust him. Him chasing the neighbor on her bike makes me think he is really just wanting to play but I'm not there to see his body language so I can't be sure. You just need to know that upfront.
And two, he needs to get some serious exercise EVERY day. My Jackie is 12 year old now and can't walk very far because her hips are bad. But if I don't take her out to the front yard and walk up the block with her and back EVERY day she makes sure I know she is not happy. Sometimes she can only walk to the neighbor's drive way and back but she still needs to get out and "see" what is going on. I don't know what the deal is with GSDs but every single one I have had has been this way.
So ... he needs some dedicated exercise. If he likes to chase a ball or play in the water sprinkler you don't necessarily have to walk him out on the street right now. What ever it is, do it until he is worn plumb out ... If he is like my Shadow was that is gonna take some doing ... lol