Mi viene in mente una soluzione, anche se probabilmente non è la migliore. In genere i daemon ftp (in particolare quello che uso, cioè vsftpd) permettono di creare diversi utenti "guest", che effettuano il log in con i privilegi di un unico utente, che in questo caso potrebbe essere www-data. Per separare gli utenti sui vari vhost puoi avviare più istanze del daemon ognuna con il suo database di utenti e con la cartella root impostata in corrispondenza della document root del vhost. Mi rendo conto che sia molto laborioso, però non mi viene in mente altro modo.
ciao