Is it possible to use curve modifier without stretching these holes?
You can replace the curve modifier by a simple deform modifier.

The point of interest is to augment the second array count until the holes stretching disappear.

Thanks to the deform modifier this is much more easy to tune than the curve modifier.

So:


Add an empty at the same X,Y location than your grid.
Add a simple deform / bend with an angle of 360 and turning around Z. Set the previous empty as origin.
Rotate this empty 180 around X.


Now tuning:


Augment the second array count to 180 (or around that).
The simple deform will make a larger ring.
But you can now scale it in X, Y (not Z) to readjust the shape to the speaker diameter.


You can see above:


The result
The added empty
The scale given to the grid
And the added simple deform parameters