los pasos serían: en el <select> llamas la función de ajax: <select onchange="javascript: tablaDyn(this.value);">
En el <head> puedes poner tu ajax-javascript. Este es del ejemplo:
<script>
function tablaDyn(str) {
    if (str.length == 0) { 
        document.getElementById("contenedor").innerHTML = "Sin datos";
        return;
    } else {
        var xmlhttp = new XMLHttpRequest();
        xmlhttp.onreadystatechange = function() {
            if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
                document.getElementById("contenedor").innerHTML = xmlhttp.responseText;
            }
        }
        xmlhttp.open("GET", "tabla.php?q=" + str, true);
        xmlhttp.send();
    }
}
</script>
Sí no hay valor tablaDyn(str) - te mostrará "Sin datos".
El valor "this.value" viene del atributo "value" del <option> y pasa al parámetro (str) y se envía a la página "tabla.php" asignándolo al parámetro "q" que sacará los datos de una base de datos o un fichero o de donde sea - que no me has dicho.
"contenedor" es el espacio donde se mostrara la tabla dynamica. puede ser div, p, u otra cosa...
En tabla.php recuperas el dato enviado así:
$q = $_GET['q']; - esto es repito el "value" del <option> elegido
Con este valor buscas los demás valores y montas la tabla...
En la web del ejemplo que te dejé hay ejemplos con arrays y mysql database.
¿De dónde sacará los datos para la tabla?