ClearAll[rectangleFilling]

    rectangleFilling[w_ : 12, op_ : .8, ef_ : Automatic] := 
     ReplaceAll[
      GraphicsComplex[c_, p_] :> 
       GraphicsComplex[c, 
        p /. Line[{a_, b_}, ___] :> 
          Dynamic @ {Opacity[1], Blend[{CurrentValue["Color"], White}, op], 
            EdgeForm[{AbsoluteThickness[2], 
              ef /. Automatic -> CurrentValue["Color"]}], 
            Rectangle[Offset[{-w, 0}, c[[b]]], Offset[{w, 0}, c[[a]]]]}]]

***Examples:***


    rectangleFilling[]@
     ListPlot[{1, 2, 3, 6, 4, 4}, Filling -> Bottom, 
      FillingStyle -> Directive[CapForm["Butt"], AbsoluteThickness[5]], 
      Frame -> True, GridLines -> Automatic, 
      PlotRangePadding -> {{-0.5, 0.5}, {0.5, 0.5}}]

[![enter image description here][1]][1]

    rectangleFilling[20]@
     ListPlot[MapIndexed[{{#2[[1]], #}} &]@{1, 2, 3, 6, 4, 4}, 
      PlotStyle -> "Rainbow", Filling -> 2.5, 
      FillingStyle -> Directive[CapForm["Butt"], AbsoluteThickness[5]], 
      Frame -> True, GridLines -> Automatic, 
      PlotRangePadding -> {{-0.5, 0.5}, {0.5, 0.5}}]

[![enter image description here][2]][2]

Replace `Filling -> 2.5} above with `Filling -> {1 -> Top, 2 -> 5, 4 -> Bottom, 6 -> 2}` to get

[![enter image description here][3]][3]


  [1]: https://i.sstatic.net/97bMb.png
  [2]: https://i.sstatic.net/SyNhh.png
  [3]: https://i.sstatic.net/zoTnG.png