i'm not sure exactly how he did it, but i'd try using cc sphere for the sphere, rotate the z rotation 90 and link the position and x rotation (within the effect settings) to a 3d null with the expression pickwhip... note, i think cc sphere x rotates in the opposite the ae transforms, so add a '-' (negative) before the expression.
then for a layer that i wanted to rotate around the sphere, i'd make 3d, then parent to the null.
this may be exactly what you are doing, but what you're finding is that the layer is either always in front or always behind the sphere.
to fix that i'd duplicate the layer and place it on the other side of the sphere (either above or below the sphere layer in the layer order).
now you could just trim the layers exactly where they cross the sphere so the layer behind the sphere gets trimmed before it crosses in front and the layer that is in front gets trimmed before it goes behind. or you could do something similar with opacity keyframes... but those options are too tedious for me.
modifying an expression from dan ebbert's motionscript.com provides a fairly easy way to get one layer to hide and the other to show at the point where the cross in front or behind the sphere.
the expression for the front layer's opacity property would be like this:
if (toCompVec([0, 0, 1]) > 0 ) 0 else 100;
and the expression for the back layer would be like this:
if (toCompVec([0, 0, 1]) > 0 ) 100 else 0;
now, if everything is parented and in the right layer order, as you rotate the x axis of the null, the sphere should rotate and the 3d layer(s) should look like they rotate around with it from behind the sphere to in front of the sphere.
in dan's expression, the layer's opacity is effected by whether the z-axis face the camera or not, the modification i made just changes that axis to the y-axis, so as it rotates from point away from the camera to pointing towards the camera the opacity changes.