Você pode usar um BoxLayout com alinhamento vertical (não vai ficar muito bom se forem poucos botões em relação à altura do JPanel):
JPanel p = new JPanel();
p.setLayout(new BoxLayout(p, BoxLayout.Y_AXIS));
p.add(button1);
p.add(button2);
...
Ou você pode usar o JGoodies Forms da seguinte maneira:
FormLayout layout = new FormLayout(
"pref:grow", /* colunas */
"pref,4dlu,pref,4dlu,pref", /* linhas */
); /* supondo a existência de 3 botões */
JPanel p = new JPanel();
p.setLayout(layout);
CellConstraints cc = new CellConstraints();
p.add(button1, cc.xy(1, 1));
p.add(button2, cc.xy(1, 3));
p.add(button3, cc.xy(1, 5));
...
Você encontra o Forms no site JGoodies. 