La única forma de hacer eso que dices es usando scripts en el lado del cliente. Tecnologías hay muchas, seguramente las conozcas, comunicación asíncrona, uso de frames e iframes, etc.
La idea es, mediante el objeto XmlHttpRequest, invocar acciones en el servidor. Estas acciones se realizan de forma independiente en éste, y devuelven (o deberían hacerlo) una respuesta definida por tí. El objeto en cuestión recoge esa respuesta y actualiza, mediante un script, las partes de tú página que sean necesarias. Esto ha venido en llamarse desde hace un tiempo AJAX, como el detergente

Existen multitud (demasiados) de frameworks que encapsulan parte del trabajo que comento, y evitan que tengas que lidiar con el objeto de marras, dejandote la programación del lado del servidor y del cliente, pero abstrayendote de las guarradas que hay que hacer para instanciar el objeto y mantenerlo a la escucha.
La otra opción, mal vista políticamente, pero muy práctica, es usar frames o iframes. El envío se hace igual que en tu ejemplo, pero el encargado de procesar tu petición, después de hacer lo que tenga que hacer en el servidor, redirige a la página que tengas asignada en uno de los frames. Una vez ahí (asumimos que es un frame vacío, digamos que hace de
controlador), y de nuevo mediante script, actualizas la parte de la vista en los frames pertinentes.
Este sistema era el que se usaba en las aplicaciones que necesitaban cierto dinamismo en su respuesta antes de que se pusiera de moda el XmlHttpRequest, y te garantizo que funciona de maravilla. Y esto es casi todo, ahora sólo hay que diseñarlo

Un saludo.