I am not sure about retrieving datasource items if it works. If you are looking to use this route. To dynamically update a list of items in datasource, you can may be explore using servlet to dynamically populate the data source. See - https://aem4beginner.blogspot.com/dynamically-populate-drop-down-values
Regarding storage of the icons, you can use tags for example. Add your icon details in tags.
eg: content/cq:tags/root/iconlist/icon1 content/cq:tags/root/iconlist/icon2, ...
in description section of the tags you will have to add the datasource value. and the tag name can be the display name for datasource item.
Now in case you need to add new icons, just add more 'icon' tags and it should be available to the data source.
Other than tags other option can be reading a text file that is uploaded in dam with a list of icons. The servlet should parse that and display the desired data sources. If a new list needs to be updated just upload the file with same name again with updated icon content.