Per quanto posso capire (ovviamente non conoscendo tutto il tuo contesto di lavoro), per ogni menuId che prendi da menuLista.get(i), allora dovresti avere:

- un nuovo List<Product> (lo ottieni, deduco, da DBManager.fillProductList).
- un nuovo XyzListModel (non so cosa hai usato di preciso) che ovviamente riempi con gli N Product.
- un nuovo JList (questo concetto di "nuovo" del JList non lo vedo nel tuo codice!)
- un nuovo JScrollPane (questo sì, lo fai già, da quanto vedo).
- un nuovo tab (questo giustamente lo fai con jTabbedPane1.addTab).

Ti è chiaro che dovresti avere tutti oggetti "nuovi" e ben distinti tra i vari tab?