I've used this form of a Show statement which combines a Plot with a ListPlot successfully with the invocation of other simpler functions, and I suspect the complexity of the particular functions being invoked here is exposing a bug in the Mathematica implementation. The function being invoked shouldn't matter. I shouldn't get a different result when using ListPlot than I do when using DiscretePlot. I modified the Show statement with an invocation of N[] around the dOfZetaAlt2Opt function as follows and now I get the correct results, so perhaps Mathematica is getting confused while trying to keep track of too many exact results.
Show[Plot[{Im[dOfZetaAltOpt[1/2 + I x, 1/2, 10, 10]],
Im[Zeta'[1/2 + I x]]}, {x, 1, 25}, PlotRange -> Automatic,
GridLines -> Automatic, PlotPoints -> 200, MaxRecursion -> 0],
ListPlot[Table[{x,
N[Im[dOfZetaAlt2Opt[1/2 + I x, 1/2, 10, 10]]]}, {x, 1, 25}],
PlotStyle -> {Red}]]