What is the criteria of the progress? Does this procedure works with a cursor and the loops like While ....?
If yes, you can determine a number of loops to be completed and have a counter inside a loop that will update second row of a global temp table of 2 rows that is created inside the stored procedure with a name reflecting a user name for example or containing application-generated unique ID. That may resolve the multipel app instances issue. Then the same instance of the application connects to this temp table and gets the overall number of rows from the first row and a current counter from the second row. This will let it to update the status bar
Do not forget to drop this table at the end of the stored procedure