sakuya 様
おはようございます。
ラインにバッファを与えてポリゴンにしたらどうなるかとか、思いつくことを試してしてみましたが駄目でした。
QGISでは基本的に地物の上にラベルを表示する仕様になっているようです。
そして困った時のGoogle大先生ということで「qgis display label under feature」をキーワードにしてググってみたところ、次のようなものがありました。
How to place labels under a vector layer? [duplicate]
内容的には今回の質問と同じようですが、解決策は提示されていないように思います。
もし自分が同じような問題を抱えたらどうするかも考えてみました。
あまりに大量でなければ、ラベルの移動と回転を使って手作業で地物を隠さないようにするかと思います。

また以前の投稿にあった「EasyCustomLabeling」を使って、引出線をつけて表示することも考えるかもしれないです。