Natürlich funzt auf diese Weise das Setzen der CheckBox nur in einer Zeile des Tress, da der komplette Tree aus Gründen der Performance nur eine einzige Instanz des TreeCellRenderers benutzt. Das ist aber in einer JTable nicht anders.
Auch bei einer JTable lege ich den Status nicht im Renderer ab, sondern in einem Objekt von dem es pro Zeile eine Instanz gibt. Ne JTable mit CheckBox hab ich letztens noch selbst gestrickt. Die eigentlich von mir verwendeten Objekte habe ich in einem eigenen Objekt gekapselt, das ich dann in die Zeilen geschoben habe. Dieses Objtekt bestand lediglich aus nem boolean für den Status der CheckBox und meinem UserObjekt.
Analog dazu musst du den CheckBox-Status im Tree auch in einem Objekt ablegen, dass pro Node eine Instanz hat. Das kann das Node-Objekt selbst sein, muss aber nicht.
Wenn du aber selber schon sagst, dass das bei JTable viel einfacher sei, muss dir die grundlegende Vorgehensweise ja schon bekannt sein.