It may sound convoluted but I did this on a quadroped spine. I took two arrows and parented them to my two control circles. One over the hip and one over the shoulder. I then grouped both of them seperatly giving them each a pad. So now I have this,
Now I point constrain the ShoulderPadGrp to a shoulder joint and likewise with the hip. I also aim constrain the two Pointers at the other PadGrp. So the HipPointerCurve is aimed at the shoulder group.
So now I take my hip control and group it inside a new group. I now set my pivot for this new group to the shoulder axis. Then you drive those two controls with the aim curves. If you use a pad for the hip it is an additive form of rigging, so you can still move the hips around normally.
I hope I didnt miss anything, I think I had to reverse a rotation somwhere or something like that. Its been a while since I did that. You should be able to get the jist of it though. If you need an example I could post a shot of the rig.
I hope that helps.