The default tracking workflow executes every hour by default.
So it is not strictky speaking "realtime"; but usually, by explaining this usual process to marketing managers, it is enough to make understandable the delay to get hourly refresh statistics.
Reminder: the technical nlserver module (server-side) reads the web server httpd logs and saves the result in database (nms:trackinglog entity/table), but up to a threshold; if there are plenty of httpd logs, it could happen that the tracking process inserts the data later in the DB.
Regarding API to reda nms:trackinglog, yes you can use it the usual way, please read the documentation for SOAP API or JSAPI (queryDef method), depending of from where you must get the results and the way you want to proceed.
And what about this : the possibility to consult the status of the email (sent, in progress, etc) and the tracking log if there is any (open, click or not) This need is mainly for real times - but if it's possible for all campaigns I'm a taker.