Think about the game as not being really 2D. Your character can move on a third axis and so your physics system needs to know about this. You just render it as two dimensional. When your character jumps, you render him above his standing position. So you only move him on the y axis of the screen. But in the gameworld, the character didn't move on the y axis of the screen, but on the worlds up axis.
It depends on the game you are making. Maybe it is just enough to have two ore more layers where your character is on. If he jumps, you blend him between those layers. So with that, you would just have some more layers of your world with objects on it. Then you could use the built in physics to get things working.
Does this help you? Otherwise, please be a bit more concrete with your question. So it is easier to know where your problems are.
edit:
After checking the video, is it just about the rendering? What is your current attempt? Normally you would use different z indices. I think that is what you are doing right now. Different layers have different z values and the more a tile is in the foreground, the higher it z value should be. So your character can stand behind objects on the same layer.