Realmente el caracter "+" y el "%20" son equivalentes. Los dos sirven para codificar un espacio en blanco en la URL.
Técnicamente, lo que estás haciendo con ese formulario es componer una URL, dejando al navegador la tarea de componerla por ti al darle al botón de envío del formulario. Por tanto, es el navegador el que ha insertado el caracter "+", que a su criterio es correcto. Quizás si el ejemplo lo pruebas desde otro navegador consigas lo que quieres, que te coloque el "%20" en lugar de "+".
No obstante, lo anterior es sin hacer nada de programación, porque realmente trabajar con HTML no se puede decir que sea programar. Con HTML sólo poco más puedes hacer. Si no te funciona como necesitas, entonces puedes realizar un poquito de programación en Javascript para componer tú mismo la URL como desees.
Para ello necesitas aprender un poco de Javascript. Tienes un Manual de Javascript en DesarrolloWeb.com muy completo para aprender lo que necesitas y más. Si ya sabes algo de Javascript simplemente tienes que hacer un tratamiento similar a como si fueras a validar un formulario. Tienes un ejemplo de validación de formularios sencillo por si quieres comenzar por aquí.
Espero haberte ayudado. Si tienes otras preguntas más concretas puedes publicar otras FAQ.