I have made a mod that adds a horse cart to minecraft, everything but this works great;
For handling the carts movement, I made the cart always face the horse and move it for the distance inbetween on every update like so;
Vec3d moveVec = new Vec3d(this.pulling.posX-this.posX-this.getLookVec().x*offset, this.pulling.posY-this.posY, this.pulling.posZ-this.posZ-this.getLookVec().z*offset);
moveVec.x, moveVec.y and moveVec.z are then used in Entity#move. I do this on both client and server, yet the cart stutters on every update tick (every 20 ticks in this case).
You can experience this by yourself by attaching a horse to a cart and letting it wander around.