Let's create a simple $3 \times 3$ grid of images
img = ExampleData[{"TestImage", "Lena"}];
P0 = Show[GraphicsGrid[{{img, img, img}, {img, img, img}, {img, img, img}}]]
My question: Is there a quick and elegant way of adding labels (1), (2), ... , (9) at the upper right part of each image? The labels should be located outside the upper right part of each panel, like the following
EDIT
Obviously, the above is just a simple case. In my real situation I have a $4 \times 4$ grid containing 16 different images with different names. So the solution must not work only for the same image, repeated many times.
EDIT II
If I try
im0 = Import["Lena.jpg"];
imn0 = Labeled[im0, {Style["(1)", FontFamily -> "Helvetica", 12, Bold]}, {{Top, Right}}];
plot0 = Show[GraphicsGrid[{{imn0, imn0, imn0, imn0}, {imn0, imn0, imn0,
imn0}, {imn0, imn0, imn0, imn0}, {imn0, imn0, imn0, imn0}}]]
then I get
Why the labels are not shown properly?
Any suggestions?