Program A connects to Program B using the CICS LINK command.
Several instances of Program A is being linked to Program B at a same time.

Here my question is Whether the second instance will wait for the first instance to be complete or they are treated as independent.

You are not clear about what you're asking here. If you are asking about program A linking serially to program B in one execution, this is a serial process and proceeds A -> B -> return to A -> B -> return to A and so forth.

If you are asking when several occurrences of A are executing as transactions in CICS and link to program B independently of one another, then each execution of B occurs independently and in parallel -- just like each execution of program A is independent and parallel.

If you know the difference between LINK and XCTL, you have the solution for your questions. Just think you will get the solution by yourself.
If you code XCTL in the program the control will never back to the main program so there is no other execution in the main program.
If code LINK the control will back to the main program once sub program execution completes.
Now I think you got better clarification.

Hi Mohan,
If program A is connecting to program B by LINK, then program A
will not stop executing. It will wait for the control to come back from B.
If program A is connecting to program B by XCTL, then program A will stop executing. After program B stops executing, control will go back to CICS.
Hope this clears your doubt.