Non conosco PHP quindi non posso darti una mano a livello di codice; conosco però il protocollo FTP il quale supporta il "globbing" tramite il comando STAT.
Se il server supporta tale feature (...e le implementazioni 'buone' lo fanno) dal client puoi mandare una stringa di questo tipo sul canale comandi:

codice:
STAT abc*
...e ricevere una lista di files che matchano tale wildcard (ovvero tutti i file della directory che cominciano per "abc").
Il tipo di formattazione di tale listato sarà il medesimo di quello fornito dal comando LIST (quello che, suppongo, otterresti tramite la funzione "FTP_LIST") con l'unica differenza che esso ti perverrà sul canale comandi anzichè quello dati.
Starà poi a te "parsare" tale risultato per ottenere i nomi dei file che sono venuti fuori e passarli alla funzione apposita per scaricarli.

Il fatto che tu riceva un risultato massimo di 2000 elementi credo sia imputabile al server il quale intelligentemente evita di farsi carico di un eccessivo carico computazione al fine di evitare condizioni di overload e/o Denial of Service.


Saluti