C'e' bisogno di fare un po' do ordine

Io farei cosi'

per prima cosa creo una funzione che prende le stringhe divise da : e crea un array 5x4 (5 righe e 4 colonne)

secondo me il tuo oggetto deve avere un array chiamato tabella che contiene questi dati

e' semplice: fai un ciclo for e ad ogni iterazione crei una riga che contiene il risultato della funzione split()
codice:
var colonna = 0 // questa e' la colonna su cui ordinerai
tabella = new Array();
for (var i = 0; i< this.array.length; i++)
{
    tabella[i] = this.array[i].split(":"); 
    tabella[i].toString = function(){return this[colonna]}; //questo serve per ordinare, vedrai in seguito

}
ora hai il tuo array che rappresenta la tabella. E' un array bidimensionale

usalo per costruire la tabella vera e propria HTML. Cioe' dimenticati di this.array e di aux (ma poi come ti e' venuto in mente di chiamare una variabile col nome array??? Mai usare nomi riservati!!!!)

inoltre questa tabella e' facile da ordinare

basta impostare la colonna sulla quale ordinare ad es:

codice:
colonna = 2;
tabella.sort();
tabella.reverse(); //questo solo nel caso di ordinamento inverso
E la tabella verra' ordinata in base alla terza colonna (la prima e' la colonna 0 ovviamente)

E' tutto un po' improvvisato ma dovrebbe andare. Almeno su FF, non ho sottomano un IE per provare in fretta

PS

io le funzioni le ho create fuori da un oggetto, spetta a te definirle come si deve definirle come si deve dentro il tuo oggetto