PLSQL - getting real-time updates
Not to the current session, no.

You can use the dbms_application_info package to instrument the code so that tools running in other sessions can query v$session_longops and see how far along the process is.  This is the same tool that Oracle internally writes to during long-running operations so lots of front-ends like Enterprise Manager and Toad will already read from it.

Alternately, you could use autonomous transactions to write to a status table as your code runs and read from that status table in a different session.  I can't see why you'd want to, but you could theoretically also use the dbms_alert package to send alerts to other sessions.