Ok (effettivamente rileggendomi forse non sono stato di grande aiuto).

Con il datasource e senza code behind:

codice:
<asp: DropDownList ID="DDLSuperCat" runat="server"  
    DataSourceID="AccessDataSource1" 
    DataTextField="Codice_Super_Cat"  
    DataValueField="ID_Super_Cat">   
</asp: DropDownList>   
<asp:AccessDataSource ID="DSSuperCat" runat="server"  
    DataFile="~/App_Data/database.mdb" 
    SelectCommand="SELECT * FROM TabSuperCategoria ORDER BY NOME asc">   
</asp:AccessDataSource>
oppure nel code behind, dopo la ExecuteReader senza ciclare il result, bindi la DropDown direttamente al result:

codice:
DropDownList1.DataSource = aReader5;
DropDownList1.DataTextField = "Codice_Super_Cat";
DropDownList1.DataValueField = "ID_Super_Cat";
DropDownList1.DataBind();
oppure come stavi facendo tu, ma dovresti riempire una dictionary invece di un arrayList e fare come sopra solo che al posto di codice e id vanno messi "Value" e "Key".

Il primo metodo, quello con accessDatasource, è piu semplice e lo puoi fare in modo visuale senza scrivere il codice, direttamente dall'ide di VS.
Lo svantaggio è che se inizi ad avere la necessità di fare cose un po piu articolate (insert, delete, filtri, master detail) la pagina asp.net ti si imputtana di controlparameter, query sql ecc.