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 -> 0to yourGraphicscode $\endgroup$GridFrameMargins. `The default setting is GridFrameMargins->{{0.4,0.4},{0.5,0.5}}. $\endgroup$Magnifyvariant of the EMF bar chart export hack... Oh wait... $\endgroup$