The Freedesktop specifications define a root Xwindow property named _NET_WORKAREA.
Window managers follow those specifications and let you move the window inside the workarea.
The panel, when launched, creates a property _NET_WM_STRUT_PARTIAL. That tells where the boundaries of the panel are goung to be. When you move/resize the panel that property changes. Whenever the struts are set, _NET_WORKAREA changes too.
What you could do is to remove the panel struts.
xprop -remove _NET_WM_STRUT_PARTIAL
But then the panel is going to be on top of all other windows.
You can use wmctrl to add the property to keep the panel below.
wmctrl -i -r ${XWINDOW_ID_OF_TOP_PANEL} -b add,below
A little scripting would be needed to find out the panel's XID and run the two commands whenever _NET_WORKAREA changes.