Un altro modo sarebbe quello di mantenere la parte in php come l'avevi fatta tu, aggiungendo solo l'attributo onclick='controllaCheckbox()' ai vari checkbox, e quindi creare del codice javascript simile a questo:

<script language="javascript" type="text/javascript">
<!--

var elenco_input = new Array();
var elenco_checkbox = new Array();
var elenco_selezionati = new Array();
var s = 0;

elenco_input = document.getElementsByTagName("input");

for (i=0; i<elenco_input.length; i++) {
if (elenco_input[i].getAttribute("type") == "checkbox") {
elenco_checkbox[s] = elenco_input[i];
s++;
}
}

function controllaCheckbox() {
elenco_selezionati = Array(); //azzero l'elenco di quelli selezionati
var p=0;

for (i=0; i<elenco_checkbox.length; i++) {
if (elenco_checkbox[i].checked == "true") {
elenco_selezionati[p] = elenco_checkbox[i];
p++;
}
}

}

-->
</script>

La differenza è che ora nel vettore "elenco_selezionati" non hai semplicemente gli id dei checkbox, ma i checkbox stessi, con le rispettive proprietà ed attributi vari. Perciò se a te serve solo l'elenco degli id, dovrai usare un ciclo for, o qualcosa di simile, e recuperare l'attributo "id":

for (i=0; i<elenco_selezionati.length; i++) {
elenco_selezionati[i] = elenco_selezionati[i].getAttribute("id");
}

Questo metodo ti creerà qualche problema nel caso tu abbia altri checkbox sparsi nella pagina...
Dovresti andare a controllare quali checkbox hanno un parentNode che coincide proprio con la tua tabella...