The list changes continuously, so as soon as you started running any such query, it would already be incorrect.
It can help to limit your query to transactions that are included in the blockchain. At least then the list will only change an average of every 10 minutes.
That being said, the blockchain does not store balances. It ONLY stores transactions. Every transaction since the beginning of Bitcoin. To get the specific information you are looking for, you can try looking for tools that will provide you the current UTXO set (unspent transaction output set). Such a tool would start at the beginning of the blockchain and read through every transaction, removing outputs from the tool's list as they are spent and adding outputs as they are created. When it gets to the end of the blockchain, you should have a complete list of all UTXO. Keep in mind that bitcoins aren't always sent to addresses, so some of the outputs in the UTXO won't be to addresses. You might be better off looking for a list of unique output scripts in the set of all UTXO.
Here's someone that wrote there own UTXO parser. Perhaps if you look around you can find a similar free open source tool that you can use:
In validating a UTXO parser I started looking at various outputs which are . . .
- snip -
Yes, I know that the list changes all the time, but an up to date list is enough to have a actual estimation.
I'm investigating some parsers, but I'm sure to do all of this its not just clicking the Build button, there will be issues on the way to troubleshoot and so on.
I will do that later, but for now I would just need an actual list. That would make my day