Young dogs, "most all breeds," go thru periods where they will test and try "everything." It is partally hormonal plus they are old enough to begin to stretch their wings.
When your dog is on leash and can "feel" the tension on it, he is being psychologically "reinforced" by your presence. This is likely a "contributing factor" but not the only one.
You must "take control" and nip this in the bud now or it will continue to escalate.
I would recommend the following steps at a minimum but since I have no idea what your training objectives are they may not be appropriate.
1. I recommend a pinch collar that is snugly fitted around the "upper" part of the neck(Just behind the ears).
2. Give your dog a "correction" when ever your dog even looks at another dog, person, etc. Stop the "aggression" before it starts. Don't even give them a chance to "think about" it (bad behavior. The more committed the dog is to a "bad action" the less his/her brain will respond to your commands/corrections.
3. Likely your dog is trying to be the "pack leader" and you must remind him that you are the "leader".
4. Do more "healing" with your dog but make sure he does not lead. He must remain at your side under your "absolute" control. No sniffing, pulling, barking at other dogs, cars, people, period.
5. Take control or loose it! Your choice!
The reason he is not agressive with children is that they are not a threat to him or to you. GSDs tend to "take ownership" of their people and he sees other adults as a threat. TAKE HIM SERIOUSLY. He will bite an adult if he thinks he needs to. Better yet, do not let anyone pet him when he is on lead. When he is off lead, he has control. When he is on lead, he doesn't.