Hola:
Lo de subir archivos con ajax, no se hace con el objeto XMLHttpRequest sino con un iframe (tal vez oculto) y un formulario... entonces para subir muchos archivos, tan solo bastaría con clonar el control del tipo file por cada archivo que se quiera subir, ocultando o deshabilitando el último.
Hay un par de cosas que se deben contemplar: cuando se selecciona un archivo, se sube (los ejemplos suelen mostrarlos de forma temporal, pero se suben realmente, así que una supuesta confirmación no puede hacer un nuevo submit)... y las cancelaciones deben borrar esos ficheros temporales para evitar tener basura en el server.
Saludos