Yes, this is possible. The fundamental algorithm for reducing a partition is that first you move the file system content towards the beginning of the partition (not necessarily the same as defragmenting, but very similar (and it could be identical)) so that the file system towards the end of the partition is unused. After that you reduce the size of the file system to somewhere between the original size and the accumulated file sizes.
Then as a final step you change the partition entry to match the reduced file system size. The extremely vital point in this operation is that the new partition entry that replaces the old one must start at the exact same location. If this goes wrong recovering is not trivial and possibly not possible at all.
For increasing a partition things are done in the opposite order, first the partition is changed to a larger size and then the file system is changed to match the new size.
Many tools provide all this as a single operation and then do all the necessary steps under the hood. But they will all follow the above procedure (and will include their own code for doing the file system operation).
GNU parted supports resizing in one operation like that although not for all files systems, and NTFS is one of them. There exists a tool ntfsresize that does support the file system resizing and then you must use a partition tool like parted or fdisk to do the final partition change like described above (make sure to use “sector” unit so that you are 100% sure that the changed partition entry starts at the very same place).
Gparted is a graphical frontend for parted that also includes support for ntfsresize and will thus support resizing NTFS partitions in one operation.
Tips:
- defrag on your NTFS file system first to make less work to be done in the reduction operation.
- reboot every time right after you have changed the partition table (you really want to be safe rather than sorry).
As always when doing this kind of partition operation, backup is a good idea. Backup is always a good idea in any case, but especially here since destroying the partition table is a fast way to lose all your data.