Typically you need piecewise rigid transform to describe displacement of bones. The resulting displacement field may have discontinuities at the bone surface, so representing it accurately using b-spline transform (which is probably the most common transform used in non-rigid registration) may not be easy.
If bone motion is moderate (bones that are close to each other do not rotate more than 10-20 degrees relative to each other) then probably you can keep using b-spline transform to represent displacement. Otherwise you may need to register bones to each other in smaller groups (using cropping and masking to exclude effect of other bones) or use some rigidity constraints.
If shape of bones is unique enough then you may be able to do surface-based registration of the same bone between two time points using Surface Registration module. This requires segmentation of each bone, which may be easy if image quality is good.
You can also do manual registration based on landmark points if the bones have clearly identifiable points and you have sufficiently high resolution images. You can use Fiducial registration wizard module of SlicerIGT extension for this.