I have a similar setup to yours: I dual boot Windows 10 and Linux. I also partitioned my ~250GB SSD, and fortunately allocated ~66 GB to my Linux partition [+2 GB for swap]. My Windows partition is about 50% free; and my Linux partition is about 40% free. I'm fine with those ratios, and therefore luckily do not need to resize my partitions.
I believe what you are proposing is inherently risky, and you should do a full backup [image file of entire Disk0] before proceeding.
That said, I think diskpart in DOS can do what you desire. It is also possible to execute in Windows' Disk Management [select the partition you want to shrink and right click -> "Shrink Volume..."]. There are also commercial partition management applications that should be up to the task.
From the Linux side, it should be possible to shrink the Windows partition using GParted. And it may actually be preferable to do so from Linux as I would think it less risky when executed from a different partition.
Are you on an EFI system with GPT disk? This procedure may have implications for your boot. You may need to manually edit grub and fstab to fix UUIDs... I'm not entirely certain as I haven't attempted this myself.
Please post back if you find more / better information as I'd be interested to know for future reference.