Let's say I have a 2d texture array with two indices, 0 and 1. If I upload an image to index 0 and render with it, can I upload another image to index 1 while the render is ongoing?
OpenGL, being a largely synchronous API, allows this. The real question is whether doing this will cause the GPU to stall, waiting for rendering to complete before issuing the copy operation. OpenGL doesn't give us an answer for this.
I would not expect that these two operations would happen asynchronously. It may be permitted on some, or even lots of, hardware, but the API can't tell us that this will be the case.