Я должен был сделать что-то подобное. Я не знаю ASP, но в PHP я использовал простой массив вроде
$r = mysql_query( ' select * from table ' );
$array = array();
while( $row = mysql_fetch_assoc( $r ) ) {
$array[strtolower(substr($row['name'],0,1))][] = $row;
}
Это создает массив с вложенными массивами. Ключ самого высокого массива - первая буква столбца имени. Тогда каждый из них имеет вложенный массив со строкой.
Без сомнения, вы можете сделать то же самое в ASP.