The best way to do so would be to collect data about the job run using the REST API (runs get endpoint). This endpoint provides as much metadata as possible. You may need to use other endpoints to get the job or run ids in order to get the correct information.
Anyway you can pull the data about the job while it was running. Save the data to a Delta table and make the visualization you would like. It tracks the start time and end time of a job while you can do the difference between the current and start time to get a progress bar.