Label each panel of Grid

Is this what you want

a = Plot[Sin[x], {x, -Pi, Pi}, AspectRatio -> 1, 
    Epilog -> Inset[Style["(a)", 18], 
    Offset[{-1, -1}, Scaled[{1, 1}]], {Right, Top}]];
b = Plot[Cos[x], {x, -Pi, Pi}, AspectRatio -> 1, 
    Epilog -> Inset[Style["(b)", 18], 
    Offset[{-1, -1}, Scaled[{1, 1}]], {Right, Top}]];
c = Plot[ArcSin[x], {x, -Pi, Pi}, AspectRatio -> 1, 
    Epilog -> Inset[Style["(c)", 18], 
    Offset[{-1, -1}, Scaled[{1, 1}]], {Right, Top}]];
d = Plot[ArcCos[x], {x, -Pi, Pi}, AspectRatio -> 1, 
    Epilog -> Inset[Style["(d)", 18], 
    Offset[{-1, -1}, Scaled[{1, 1}]], {Right, Top}]];
GraphicsGrid[{{a, b}, {c, d}}, AspectRatio -> 1, Spacings -> {1, 2}, 
Frame -> All]

enter image description here


You can use PlotLabels for each individual graph:

labelstyle={Bold,18};
a = Plot[Sin[x], {x, -Pi, Pi},PlotLabel->Style[Sin,labelstyle]];
b = Plot[Cos[x], {x, -Pi, Pi},PlotLabel->Style[Cos,labelstyle]];
c = Plot[ArcSin[x], {x, -Pi, Pi},PlotLabel->Style[ArcSin,labelstyle]];
d = Plot[ArcCos[x], {x, -Pi, Pi},PlotLabel->Style[ArcCos,labelstyle]];
Grid[{{a, b}, {c, d}}, Spacings -> {1, 2}, Frame -> All]

enter image description here


Labeled:

plots = Plot[#[x], {x, -Pi, Pi}] & /@ {Sin, Cos, ArcSin, ArcCos};
labels = Style[#, "Section", 18, Black] & /@ {"Sin", "Cos", "ArcSin", "ArcCos"};
labeledplots = Labeled[#1, #2, Top] & @@@ Transpose[{plots, labels}];

Grid[Partition[labeledplots, 2], Spacings -> {2, 2}, Dividers -> All]

Mathematica graphics

Panel:

paneledplots = Panel[#, #2, {{Top, Center}}, Appearance -> "Frameless"] & @@@ 
   Transpose[{plots, labels}];

Grid[Partition[paneledplots, 2], Dividers -> All, Spacings -> {2, 2}, 
   ItemSize -> {15, Automatic}]

enter image description here