The times function is being called once, only as the page writes. Try encapsulating the part that calls the function into the onchange event of the "number" node. I would append the answers to the table rather than document.write them. Try this out:
<head>
<script type="text/javascript">
function times(wert) {
var j = document.getElementById('number').value;
return Math.pow(j, wert);
};
function doCalc(){
document.getElementById("output").innerHTML="<tr><th>x</th><th>2*x</th></tr>";
for (var i =0; i <= 64; i++) {
out = "<tr><td>" + i + "</td><td>" + times(i)+ "</td></tr>"
document.getElementById('output').innerHTML += out;
}
}
</script>
<head>
<body>
<select id="number" style="margin:40px;" onchange="doCalc()">
<option value="0">0=x</option>
<option value="1">1=x</option>
<option value="2">2=x</option>
<option value="3">3=x</option>
<option value="4">4=x</option>
</select>
<table border="1mm">
<tbody id="output">
<tr><th>x</th><th>2*x</th></tr>
</tbody>
</table>
</body>