Hai idea di come utilizzare gli array?
Se si, la risposta stà nella creazione di un array che contenga le distinte categorie popolato con una SELECT DISTINCT;
Un ciclo iterato per ogni elemento dell'array precedente che esegua una SELECT sui records appartenenti ad ogni singola categoria e popoli un array corrispondente al resultset.
Ottenuti gli array costruirai l'output HTML scandendo l'array madre (categorie) e il relativo subarray dei records.
In alternativa, se preferisci, puoi fare una una prima query SELECT DISTINCT come detto sopra e, impostato un ciclo WHILE NOT objRS.EOF ... WEND, per ogni iterazione esegui una sottoquery per listare i records che soddifano la condizione di appartenenza alla categoria corrente avendo cura, ovviamente, di produrre contestualmente l'output HTML necessario.
Ciao
P.S.: io punterei sulla prima soluzione anche perchè, attribuiti magari gli array ad altrettante variabili application, se ne potrebbero riutilizzare i contenuti all'interno della tua applicazione senza interrogare ripetutamente il DB.
Ma tutto dipenderà naturalmente dall'uso che ne vorrai fare.