Is there a way to assign shift key to a mouse button?
I think blender maps operators to keys and not keys to operators, so you probably have to remap every operator that uses the Shift key.  

In user preferences->input ,  you can set the input event to a NDOF device.