Ma se i dati si trovassero tutti in una tabella? non è meglio?
No. E' una questione di corretta normalizzazione dei dati.

Non riesco a farlo funzionare!! chi riesce a spiegarmelo meglio?
Dipende da cosa vuoi fare funzionare. Se vuoi mantenere i dati in una sola tabella, per ottenere il risultato che speri puoi usare il while per creare 2 array: uno per i clienti e uno per le polizze. Con una seconda iterazione puoi quindi estrarre i clienti e, per ciascun cliente estrarre dal secondo array tutte le sue polizze. Questo procedimento però implica che esista una relazione tra i due array in modo da selezionare, per ogni elemento del primo tutti gli elementi del secondo che lo riguardano. Ma allora, tanto vale usare 2 tabelle separate direttamente nel database, le quali rappresentano già quella relazione.

Date le 2 tabelle, puoi utilizzare indifferentemente la mia soluzione o quella più sintetica di
fmortara