The Syrian army has gained ground in the key Khalidiya district in Homs after ousting foreign-backed militants in fierce clashes in the flashpoint city, a watchdog says.