I have two primary partitions in my hard disk one with Windows (~900GB) and the other with Ubuntu(~100 GB), but now I need more space for my Ubuntu. Can I make a free space partition in Windows (shrink volume) and then merge it with my Ubuntu partition without any serious problems?
Yes, you can, but run Windows after that so its' CHKDSK can check for any problems or issues. Also, make sure not everything of the 900GB is filled(the number of GBs that's filled on Windows must be less than the number you want to add to Ubuntu). If you need space on Windows sometime after and need to cut from Ubuntu, use a Live CD/DVD to do so.
EDIT: If you need software to do so, I believe GParted will serve you.
sudo apt-get install gparted