a. He is on an L1 visa, which is highly restrictive (cant change employer). Here, there isn't much you can do to help until the company converts him to H1B (after L1 runs out).
b. He is on an H1B visa. If this is the case, ask him if his I-140 is approved. If it was approved for more than 6 months, he can safely change jobs without visa running out (new employer needs to sponsor for an H1B, but you can get indefinite 3 yr extensions). See if you can refer him to your friends working in other companies, or encourage him to apply for other jobs (since you think he is good at his job). Once he gets a competing offer, he will have the leverage to negotiate a raise or move to a new position.
c. He is on an H1B, without an approved I-140. If the company isn't filing one for him yet or delaying it, he needs to leave ASAP, or he will have to leave the US after 6 years on his H1B runs out. This is a very stressful situation to be in. The best you can do for him here is to refer him to another job where visa workers aren't being exploited.
As another Indian on H1B, I really thank you for your concern for your colleague. There are so many Indians out there stuck in bad work situations due to their perma-temp work visa status.