Is there a way so that I can selectively limit bandwidth of a running process?
I use NetBalancer. While its a paid software, a free version exists, but can restrict traffic on upto 3 processes at a time.
I use Net Limiter, which has a free version, but unfortunately you'll need to pay for the limitation feature.
There are good reasons to look at the "Internet facing router" approach for managing a network as a whole - however as the original question was specific and the user may very well be the only computer on the network, that is a secondary concern.
Per the current top answer, I am now testing out NetBalancer. It seems to work really well - and is easy to configure. The free/unlicensed version allows you to do so for up to 3 applications which, for me right now, is perfect (I'm using it to limit Origin's downloads only).
If you need to manage more than 3 applications, then the only down side of NetBalancer is the price - at ~$50.
The alternative is NetLimiter. It has a free trial period - but starts at ~$20 for the Lite version or ~$30 for the Pro version. NetLimiter is the tried-and-tested go-to application for many SysAdmins.
When NetLimiter's trial ends, until you buy a license, it becomes a monitoring-only tool - and no longer supports throttling. This can still be useful - but not for this use case.
Using a Router (with an explanation of why this isn't a good approach to this use case).
Though using a smart/highly-configurable router is usually the better approach to wholistic network management, the disconnect between that and the original question is not explained in @ZaB's answer. The original question is specifically asking about a process - which a router has no way reliably to identify.
The one variation that is close to useful on this end is if an application only communicates over a specific channel or type of traffic that easily can be identified by the router. An example is below of EA's Origin downloads:
Origin presently uses Akamai. Typically I set automatic downloads/updates to run at any time - but I'd prefer that it not use all the line capacity while I'm busy doing other more important things. Origin happens to be very bad at this sort of thing, thus it doesn't support download schedules or download throttling. Currently my desktop is downloading a game using the server "a1750.d.akamai.net". A MikroTik router (an example of a smart router) can take note that this DNS name was used (it will be in the DNS cache with an IP address) and can be configured temporarily to add the destination server's IP address to an "address list". All traffic to/from the address list can be added to a throttled queue thereby, technically, throttling a single application.
The approach above is naive however. EA could at any time change the server name, the protocol used, etc - and my shiny new rule will be rendered useless.
Internet facing router is a better place for traffic shapers, just like every entrance to VPN. PS i used to use netlimiter before installing alternate firmware on home gateway.