Puedes hacer un <input name="pregunta[]" /> así creará un array el cual podrías procesar con foreach. ej:
tu code1:
linea 33: echo "Preguntas: <input type='text' name='pregunta[]' size='50'>";
tu code2:
linea 06: $preguntas = $_POST['pregunta'];
linea 15: foreach ($preguntas as $p) //inserte código útil aquí.
APARTE:
Podrias hacer esto mucho mas lindo con CSS/jQuery/Javascript
:
ej. al boton dale un onclick="function() { var numeroPregunta=1; jQuery(form).append('<input name="p'+numeroPregunta+'" />'); numeroPregunta=numeroPregunta+1;})"
http://api.jquery.com/append/
RECOMENDACIONES // Offtopic.
1- limpia las variables, están desnudas y estúpidamente violables.
2- usa comillas simples ' ' en los echo 'ejemplo'; cuando no uses variables por motivos de rendimiento, ya que las comillas dobles buscan variables en la string antes de escribirla, por lo que causa un procesamiento inútil (ya que como dije, no estas usando variables).
nota punto 2: es ÍNFIMO el rendimiento que se gana pero nunca es malo tenerlo en cuenta.
Saludos.