Ho provato ad utilizzare il cilo for in cui aggiungi dinamicamente i pannelli a tabella, però non avendo il resto del codice ci ho aggiunto semplicemente dei JPanel, mentre tu ci aggiungi dei PanelbMSC, che non so come sono fatti. Ad ogni modo c'è sicuramente un errore nel ciclo for:

for(i=0; i <= dataSize; i++) {
pannelli[i].setBackground(Color.white);

tabella.addTab(scenari[i],null,pannelli[i] );
getContentPane().add(new JScrollPane(tabella));

}

In questo modo ad ogni iterazione che fai aggiungi al frame un nuovo JScrollPane con tabella, mentre dovresti aggiungerla solo alla fine, all'esterno del for:

for(i=0; i <= dataSize; i++) {
pannelli[i].setBackground(Color.white);
tabella.addTab(scenari[i],null,pannelli[i] );
}
getContentPane().add(new JScrollPane(tabella));

Quest'errore nel mio esempio non impediva comuque la visualizzazione delle barre, ad ogni modo ricordo che con qualche versione del JDK precedente all'1.4.2 si avevano problemi se si aggiungeva più volte lo stesso componente ad un pannello, quindi aggiusta comuqnue il codice.

Tra l'altro non capisco perchè fai prima un ciclo for in cui inizializzi pannelli[i] con un nuovo JPanel e poi fai un altro ciclo in cui assegni a pannelli[i] un nuovo PanelbMSC, che senso ha allora fare il primo for?

Ad ogni modo tieni presente che le barre diventatno visibili se il componente contenuto nel JScrollPane è di dimensione maggiore rispetto all'aria visibile. In questo caso nel JScrollPane è contenuta tabella, la cui dimensione è a sua volta determinata dalla dimensione massima dei pannelli aggiunti a tabella, quindi bisonga verificare che tale dimensione sia sufficiente. Fai tra l'altro questa prova: una volta avviata l'applicazione prova a rimpicciolire la finestra trascinando i bordi, e vedi se a un certo punto (magari quando la finestra è molto piccola) le barre appaiono o no. Altri suggerimenti non te li so dare non avendo il codi ce delle altre classi sottomano, ciao.