I can reproduce the problem described by OP in Mathematica 9.0.1 on Windows 8.1.
By using FrontEnd`UndocumentedBoxInformationPacket
to check the displayed Boxes' layout in the FrontEnd, I wildly guess that the cause of the problem might be hiding in the FrontEnd layout engine (of only the Windows version maybe?). If it's true, then there might be nothing we users can do with it...
Here is my experiment and observation. I extracted the layout information and redrew them in a more clarified way (click image to see it larger; the code is attached afterward). In the screenshot, the upper green grid and the left column in this panel are corresponding to Grid
, and the lower grid and the right column are to GraphicsGrid
:

blocks = Table[{Graphics[{Darker@Green, Rectangle[{0, 0}, {1000, 200}]}, PlotRangePadding -> 0, PlotRangeClipping -> True, ImagePadding -> 0]}, {i, 2}];
myGrid = Grid[blocks, Spacings -> {0, 0}, Frame -> All];
myGraphGrid = GraphicsGrid[blocks, Spacings -> {0, 0}, Frame -> All, PlotRangePadding -> 0];
gridNB = myGrid // ToBoxes // Notebook[{Cell[BoxData[#], CellMargins -> 0, CellFrameMargins -> 0]}, ShowCellBracket -> False, Saveable -> False, WindowClickSelect -> False, Selectable -> False, WindowFrame -> "ThinFrame", WindowElements -> {}, WindowFrameElements -> {}, WindowMargins -> {{10, Automatic}, {Automatic, 10}}, WindowSize -> {200, 300}] & // NotebookPut;
graphGridNB = myGraphGrid // ToBoxes // Notebook[{Cell[BoxData[#], CellMargins -> 0, CellFrameMargins -> 0]}, ShowCellBracket -> False, Saveable -> False, WindowClickSelect -> False, Selectable -> False, WindowFrame -> "ThinFrame", WindowElements -> {}, WindowFrameElements -> {}, WindowMargins -> {{10, Automatic}, {Automatic, 320}}, WindowSize -> {200, 300}] & // NotebookPut;
{mgnf1, mgnf2} = 100 CurrentValue[#, Magnification] & /@ {gridNB, graphGridNB};
mgnfController1 = Row[{HorizontalGauge[Dynamic[mgnf1, (SetOptions[gridNB, Magnification :> #/100.]; mgnf1 = #) &], {10, 1000}], Style[Row[{Dynamic[mgnf1], "%"}], 20]}];
mgnfController2 = Row[{HorizontalGauge[Dynamic[mgnf2, (SetOptions[graphGridNB, Magnification :> #/100.]; mgnf2 = #) &], {10, 1000}], Style[Row[{Dynamic[mgnf2], "%"}], 20]}];
Clear[BRtoPolygon]
BRtoPolygon[boundingRect_, zCoord_: RandomReal[]] := Outer[List, ##] & @@ MapAt[Minus, boundingRect\[Transpose], 2] // MapAt[Reverse, #, 2] & // ArrayPad[Flatten[#, 1], {0, {0, 1}}, zCoord] & // Polygon
gridLayout = DynamicModule[{bips, layer, zCoordRule, hueRule},
Dynamic[
Module[{Graphics3DTemp, zCoord, hue},
bips = MathLink`CallFrontEnd[FrontEnd`UndocumentedBoxInformationPacket[#]] &[gridNB];
layer = bips //. {FE`BoxType -> bt_, FE`Position -> pos_, FE`BoundingRectangle -> br_, __, FE`Children -> chd_} :>
{
bt,
If[And @@ (NumericQ /@ Flatten[{pos, br}]),
Function[{pts, zCoord},
Graphics3DTemp[{
FaceForm[Hue[hue, .1, 1]], EdgeForm[Hue[hue, 1, .7]], BRtoPolygon[pts, zCoord],
If[MemberQ[{"GridBox", "GraphicsBox", "RectangleBox"},bt],
Text[Style[bt, 15], Append[{1, -1} Last[pts], zCoord]], {}]
}]
][pos + # & /@ br, zCoord],
Hold[Sequence[]]],
chd
} /. {bt_String, Hold[Sequence[]], chd_} :> Hold[Sequence[]] // ReleaseHold;
zCoordRule = Map[Function[{pos}, pos -> (layer[[##]] & @@ pos /. zCoord -> Length[pos])], Position[layer, Graphics3DTemp[__]]];
hueRule = Thread[# -> Rescale[Range[Length@#]]] &@Position[layer, hue];
ReplacePart[ReplacePart[layer, zCoordRule], hueRule] /. Graphics3DTemp -> Graphics3D // Cases[#, g_Graphics3D :> g, ∞] & // Rest //
Show[#,
Axes -> True, AxesStyle -> Blue, AxesLabel -> (Style[#, 17, Italic, Blue, Bold] & /@ {"width", "height", "layer"}),
Boxed -> False, ViewVertical -> {-1, 0, 0}, ViewPoint -> 1000 {-.9, -1, .5},
BoxRatios -> {Automatic, Automatic, 400}, ImageSize -> 700, Lighting -> {{"Ambient", White}}] &
],
UpdateInterval -> 0]
];
graphGridLayout = DynamicModule[{bips, layer, zCoordRule, hueRule},
Dynamic[
Module[{Graphics3DTemp, zCoord, hue},
bips = MathLink`CallFrontEnd[FrontEnd`UndocumentedBoxInformationPacket[#]] &[graphGridNB];
layer = bips /. e : {FE`BoxType -> "InsetBox", FE`Position -> pos_, __, FE`Children -> {{FE`BoxType -> "GraphicsBox", __}}} :> ReplacePart[e, {6, 2, 1, 2, 2} -> pos] //.
{FE`BoxType -> bt_, FE`Position -> pos_, FE`BoundingRectangle -> br_, __, FE`Children -> chd_} :>
{
bt,
If[And @@ (NumericQ /@ Flatten[{pos, br}]),
Function[{pts, zCoord},
Graphics3DTemp[{
FaceForm[Hue[hue, .2, 1]], EdgeForm[Hue[hue, 1, .7]], BRtoPolygon[pts, zCoord],
If[MemberQ[{"InsetBox", "GraphicsBox", "RectangleBox"}, bt],
Text[Style[bt, 15], Append[{1, -1} First[pts], zCoord]], {}]
}]
][pos + # & /@ br, zCoord],
Hold[Sequence[]]],
chd
} /. {bt_String, Hold[Sequence[]], chd_} :> Hold[Sequence[]] // ReleaseHold;
zCoordRule = Map[Function[{pos}, pos -> (layer[[##]] & @@ pos /. zCoord -> Length[pos] + Mean[pos[[1 ;; -1]]])], Position[layer, Graphics3DTemp[__]]];
hueRule = Thread[# -> Rescale[Range[Length@#]]] &@Position[layer, hue];
ReplacePart[ReplacePart[layer, zCoordRule], hueRule] /. Graphics3DTemp -> Graphics3D // Cases[#, g_Graphics3D :> g, ∞] & // Rest //
Show[#,
Axes -> True, AxesStyle -> Blue, AxesLabel -> (Style[#, 17, Italic, Blue, Bold] & /@ {"width", "height", "layer"}),
Boxed -> False, ViewVertical -> {-1, 0, 0}, ViewPoint -> 1000 {-.9, -1, .5},
BoxRatios -> {Automatic, Automatic, 700}, ImageSize -> 700, Lighting -> {{"Ambient", White}}] &
],
UpdateInterval -> 0]
];
panel = Grid[{{mgnfController1, mgnfController2},
{gridLayout, graphGridLayout}},
Frame -> All, Alignment -> {Left, Top}] // ToBoxes //
Notebook[{Cell[BoxData[#], "Output", CellMargins -> 0, CellFrameMargins -> 0]}, ShowCellBracket -> False, Saveable -> False, WindowElements -> {}, WindowFrame -> "ThinFrame", WindowFrameElements -> {"CloseBox"}, WindowMargins -> {{220, Automatic}, {Automatic, 10}}, WindowSize -> All] & // NotebookPut;
PlotRangePadding -> 0, ImagePadding -> 0
to yourGraphics
code $\endgroup$GridFrameMargins
. `The default setting is GridFrameMargins->{{0.4,0.4},{0.5,0.5}}. $\endgroup$Magnify
variant of the EMF bar chart export hack... Oh wait... $\endgroup$