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:
