I tried using {200,200} to specify width and height instead of just width (200), and for some reason I was able to specify the size of the 3D plots i.e. stop the rescaling. I suspect that 3D plots need to be specified in more dimensions than their 2D counterparts in order to be displayed properly at the size you want.
Here's a summary of the codes and outputs I tested. Strangely when I included 2 squares at the end to check the size of mine and eldo's solutions, neither of ours match the size of the squares. I'm not sure if that's the fault of our solutions or of the squares being improperly set up. I'm a newbie at Mathematica--waiting for my copy of Mathematica Navigator to arrive(!)--so I may very well not know what the heck I'm doing.
PS: I'm also a college student in LA! Not at LSU though.
{
(*OP's situation: changing ImageSize does not change size of plots in grid*)
{GraphicsGrid[
Table[Plot3D[Sin[x + y^2], {x, -3, 3}, {y, -2, 2},
ImageSize -> 200], {2}, {2}], Frame -> All],
GraphicsGrid[
Table[Plot3D[Sin[x + y^2], {x, -3, 3}, {y, -2, 2},
ImageSize -> 100], {2}, {2}], Frame -> All]},
(*My--seismatica's--suggestion: use {w,h} to specify width & height instead of just width*)
{GraphicsGrid[
Table[Plot3D[Sin[x + y^2], {x, -3, 3}, {y, -2, 2},
ImageSize -> {200, 200}], {2}, {2}], Frame -> All],
GraphicsGrid[
Table[Plot3D[Sin[x + y^2], {x, -3, 3}, {y, -2, 2},
ImageSize -> {100, 100}], {2}, {2}], Frame -> All]},
(*eldo's suggestion: use Grid*)
{Grid[Table[
Plot3D[Sin[x + y^2], {x, -3, 3}, {y, -2, 2},
ImageSize -> 200], {2}, {2}], Frame -> All],
Grid[Table[
Plot3D[Sin[x + y^2], {x, -3, 3}, {y, -2, 2},
ImageSize -> 100], {2}, {2}], Frame -> All]},
(*Squares of specified dimensions, for reference*)
{Graphics[Rectangle[], ImageSize -> 200],
Graphics[Rectangle[], ImageSize -> 100]}
} // TableForm

Edit: I suspected the mismatch in size (between the plots and the reference square) is due to padding of (Graphics)Grid. However, after removing the padding--by setting Spacings to {0,0}, the mismatch is still there. Also, for some reason, eldo's grid loses the internal horizontal frame after removing spacing. Not quite sure what's going on :/
{
(*OP's situation: changing ImageSize does not change size of plots in grid*)
{GraphicsGrid[
Table[Plot3D[Sin[x + y^2], {x, -3, 3}, {y, -2, 2},
ImageSize -> 200], {2}, {2}], Frame -> All, Spacings -> {0, 0}],
GraphicsGrid[
Table[Plot3D[Sin[x + y^2], {x, -3, 3}, {y, -2, 2},
ImageSize -> 100], {2}, {2}], Frame -> All, Spacings -> {0, 0}]},
(*My--seismatica's--suggestion: use {w,h} to specify width & height instead of just width*)
{GraphicsGrid[
Table[Plot3D[Sin[x + y^2], {x, -3, 3}, {y, -2, 2},
ImageSize -> {200, 200}], {2}, {2}], Frame -> All,
Spacings -> {0, 0}],
GraphicsGrid[
Table[Plot3D[Sin[x + y^2], {x, -3, 3}, {y, -2, 2},
ImageSize -> {100, 100}], {2}, {2}], Frame -> All,
Spacings -> {0, 0}]},
(*Squares of specified dimensions, for reference*)
{Graphics[Rectangle[], ImageSize -> 200],
Graphics[Rectangle[], ImageSize -> 100]},
(*eldo's suggestion: use Grid*)
{Grid[Table[
Plot3D[Sin[x + y^2], {x, -3, 3}, {y, -2, 2},
ImageSize -> 200], {2}, {2}], Frame -> All, Spacings -> {0, 0}],
Grid[Table[
Plot3D[Sin[x + y^2], {x, -3, 3}, {y, -2, 2},
ImageSize -> 100], {2}, {2}], Frame -> All, Spacings -> {0, 0}]},
} // TableForm
