File looks fine with Chrome, Firefox, Reader (that MS thingy that comes with Windows 10), and Edge.
It looks correct with Adobe Reader 11 if the option "Enhance thin lines" under Preferences => Page Display is off.
It sometimes looks better if you specify the lower corner and use a negative height:
Code:
gfx.DrawRectangle(XBrushes.Black, 20, 120, 0.5, -100);
gfx.DrawRectangle(XBrushes.Red, 20, 20.5, 100, -0.5);
At 100% the inverted version looks correct, at 150% the original version looks correct and the inverted version overlaps, at 200% both look correct.
It is an Adobe Reader mystery and I guess you will have to live with it.
AFAIK you cannot control (override) the "Enhance thin lines" from a PDF file.