l'upload di un intera cartella non vedo come farlo, neanche utilizzando il componente SWFUpload di Flash (antr3a lo ha wrappato rendendolo disponibile via javascript)

l'upload multiplo è semplice: basta avere più caselle per l'upload nel form

solo che invece di mettere un nome tipo

upload1
upload2
upload3
upload4
upload5
.
.
.
uploadN

che diventa ingestibile fai semplicemente

upload[]
upload[]
upload[]
upload[]
upload[]
.
.
.
upload[]

in modo che quando accedi all'array $_FILES la chiave upload sarà un array che conterrà gli array delle specifiche informazioni

if (isset($_FILES['upload']) === true)
{
foreach($_FILES['upload'] as $uploadInformations)
{
.
.
.
}
}

ti permetterà di accedere alle informazioni sui singoli upload verificando che sia settato (serve sempre controllare ) e inserirà dentro $uploadInformations, ovviamente il nome lo puoi cambiare, le informazioni su ogni singolo file uploadato ... non devi far altro che spostare la procedura di controllo dell'upload e inserimento dei dati dentro il ciclo

per renderlo dinamico durante l'invio devi usare Javascript con o senza una libreria che ti dia una mano (jquery, scriptacolus e tante altre ... personalmente mi piace più la prima)

ovviamente, quest'ultima parte, con il forum php non c'entra proprio nulla