I understand that this is not smart at all, and this is not the special format string you are looking for, but this answer really works, given that the output is a fixed length:
SELECT SUBSTR(TO_CHAR(NVL(arg1 - arg2, TO_DSINTERVAL('0 00:00:00'))), 1, 1) || SUBSTR(TO_CHAR(NVL(arg1 - arg2, TO_DSINTERVAL('0 00:00:00'))), 9, 2) || ' ' || SUBSTR(TO_CHAR(NVL(arg1 - arg2, TO_DSINTERVAL('0 00:00:00'))), 12, 12) FROM table1;
It also just reduces fractional seconds instead of rounding, but I assume from your example they are still zeros.
This is even more embarrassing, but I could not resist:
SELECT SUBSTR(REPLACE(TO_CHAR(NVL(arg1 - arg2, TO_DSINTERVAL('0 00:00:00'))) , '0000000', '') , 1, 16) FROM table1;
source share