Aquí veo dos problemas que si bien pueden ser agravantes el uno del otro creo que deberían trabajarse por separado.
Por un lado tenemos el comportamiento del perro en la calle y por otro lado su actitud en casa.
Te voy a intentar dar unas pautas generales que van bien a la mayoría de perros que presentan los mismos síntomas, pero ten claro que cada perro es un mundo y que aunque parezca que su problema es el mismo que el del perro del vecino siempte hay matices que hacen que la solución a los problemas de uno no sean las mismas que las del otro.
Te voy a ayudar para que entiendas un poco más a tu perro, pero siempre en estos casos se debería acudir a un etólogo, que no a un adiestrador, ya que él es un profesional cualificado que puede ver el motivo del problema con estar media hora con el perro, y puede ver algo que tú, por el simple hecho de ser un novato o de no tener sus conocimientos (sin ánimo de ofender) puedes pasar por alto.
Mañana por la tarde te pongo lo que yo haría, pero es que ahora estoy desde el móvil, tengo que acabar un trabajo y necesito el ordenador para ponerte unas fotos y unos enlaces y para no morirme con la mierda de teclado que tengo. Si tienes mucha prisa puedes ir mirando un artículo del blog canescool que es sobre reactividad canina o leer acerca del método bat, que tiene muchas imágenes y es muy sencillo de entender.
Pero te voy a aclarar una cosa ya ahora, NUNCA riñas al perro por gruñir o ladrar a alguien, ya que es una actitud que le sale "sola" por miedo, y el miedo no se puede castigar, porque solo hace que tenga más miedo. Es como si a un niño le pegas una chaparreta cada vez que te despierta de noche por miedo a la oscuridad; no solo tendrá miedo a quedarse dormido sino que además tendrá pánico de tener ese miedo ( incontrolable para él) porque implica un castigo tuyo a mayores. Luego me explayo más en esto.