You can pre-process the input data to ListPlot
dt = Transpose[{tempDrop /@ HePure, tempDrop /@ HeO2Mix}];
dt2 = Join[#, {Through@{Max, Min}@#, #[[1]]}] & /@ dt;
ListPlot[dt2, Joined -> True, BaseStyle -> Thick]
ListPlot[dt2, Joined -> True, PlotStyle -> Directive[Thick, Blue]]
Or, less conveniently, post-process the plot output
lplt1 = ListPlot[dt, PlotRange -> {{50, 650}, {50, 350}}, Joined -> True,
AxesLabel -> {"Temperature in, [K]", "Temptature drop, [K]"}, PlotStyle -> Thick] ;
Normal[lplt1] /. Line[x_] :> (Line[Join[x, {Through@{Max, Min}@x, x[[1]]}]])
or
Normal[lplt1] /. Line[x_] :> {Thick, Blue, Line[Join[x, {Through@{Max, Min}@x, x[[1]]}]]}
to get the first and second pictures above.
Update:
make the artificially added vertical and horizontal part of the triangle ... not thick
(or) to put the dots back on
Normal[lplt1] /. Line[x_] :> {ThickThickness[.01], BlueGray, Line[x], PointSize[Large], Point[x],
Orange, Thin, Line[{x[[1]], Through@{Max, Min}@x, x[[2]]}],
PointSize[Large], Blue, Point[x]}