One way is to put None instead of "Top" as follows:
Plot[{Sin[h], Cos[h], Tan[h]}, {h, 5, 10}, PlotStyle -> {{GrayLevel[0], Dashing[None], Thickness[0.005]}, {GrayLevel[0], Dashing[Tiny], Thickness[0.005]}, {GrayLevel[0], Dashing[Small], Thickness[0.005]}, {GrayLevel[0], Dashing[Medium], Thickness[0.005]}}, Axes -> False, Frame -> True, FrameLabel -> {{"Left", Rotate["Right", 180 Degree]}, {"Bottom", None}}, PlotLegends -> Placed[LineLegend[Automatic, {"sin", "cos", "tan"}, LegendLayout -> "Row", LegendMarkerSize -> {{45, 15}}], {0.5, 1.002}]]
Then you get this: 
If you need to have an additional label on top above the legends, use Column to combine them as here:
Column[{ Style["top", 10, "Times New Roman"], Plot[{Sin[h], Cos[h], Tan[h]}, {h, 5, 10}, PlotStyle -> {{GrayLevel[0], Dashing[None], Thickness[0.005]}, {GrayLevel[0], Dashing[Tiny], Thickness[0.005]}, {GrayLevel[0], Dashing[Small], Thickness[0.005]}, {GrayLevel[0], Dashing[Medium], Thickness[0.005]}}, Axes -> False, Frame -> True, FrameLabel -> {{"Left", Rotate["Right", 180 Degree]}, {"Bottom", None}}, PlotLegends -> Placed[LineLegend[Automatic, {"sin", "cos", "tan"}, LegendLayout -> "Row", LegendMarkerSize -> {{45, 15}}], {0.5, 1.001}], ImageSize -> 300 ] }, Alignment -> Center]
which gives the following picture: 
However, what I usually do is the following:
Plot[{Sin[h], Cos[h], Tan[h]}, {h, 5, 10}, PlotRange -> {-3.5, 4.5}, PlotStyle -> {{GrayLevel[0], Dashing[None], Thickness[0.005]}, {GrayLevel[0], Dashing[Tiny], Thickness[0.005]}, {GrayLevel[0], Dashing[Small], Thickness[0.005]}, {GrayLevel[0], Dashing[Medium], Thickness[0.005]}}, Axes -> False, Frame -> True, FrameLabel -> {{"Left", Rotate["Right", 180 Degree]}, {"Bottom", "Top"}}, PlotLegends -> Placed[LineLegend[Automatic, {"sin", "cos", "tan"}, LegendLayout -> "Column", LegendFunction -> "Frame", LegendMarkerSize -> {{45, 15}}], {0.85, 0.77}]]
yielding this: 