Hola:
Hay varias posibilidades, pero ninguna sencilla.
Una opción es heredar de JTable y sobreescribir el método getTableHeader() para que devuelva un JTableHeader que tú te hagas a medida.
Otra opción es que anides JTables uno dentro de otro. Puedes definir el render de una tabla para decidir tú cómo dibujar una celda concreta y esa celda puede a su vez ser otro JTable con su cabecera.
http://www.chuidiang.com/java/tablas...ablarender.php
Se bueno.