Firstly, it can't be done, secondly, why would you want to? Remember that loop will be seen by a compiler and evaluated to some assembly code:
mov rcx, 0
_loop_label:
add rcx, 1
; do some stuff
cmp rcx, count
jl _loop_label
; continue program
Then array access looks something like this (which is how pointer arithmetic works):
mov rbx, [baseaddress+rcx*4]
Disclaimer: your compiler definitely writes better assembly than I do.
So, when you look at this, all you're doing is accessing a memory address offset by the iteration number multiplied by the size of the data type in question. What use is it to give each of these a unique, defined name inside your executable when you have enough information to get to the memory address in question in any case? You certainly won't actually find the variable name inside the resultant assembly.
I suspect that if what you were trying to do was possible, the compiler would simply optimise it out.