So it turns out you can use userdraw and add glDisable (GL_DEPTH_TEST) in the render method and the object is always drawn on top.
However you must set the display priority of the object being drawn on top to highest so it is drawn last.
Selection does work BUT the section behind another object is not selectable. I tried setting the selection priority which has no effect. To fix this simple use StdSelect_ViewerSelector3d.