Вот еще набросал примерчик для стандартной функций установки используя плагин
ThreadTimer для создания параллельного потока . В принципе куда угодно можно отобразить время.
Код:

OutFile "Time2.exe"
!include "MUI.nsh"
Var Stime
Var Ttime
!insertmacro MUI_PAGE_INSTFILES
Function .onInit
System::Call 'kernel32::GetTickCount(v)i.r0'
StrCpy $Stime $0
GetFunctionAddress $1 ChekTime
ThreadTimer::Start 100 -1 $1
FunctionEnd
Section
DetailPrint "Команда 1"
Sleep 10000
DetailPrint "Команда 2"
Sleep 10000
DetailPrint "Команда 3"
Sleep 10000
DetailPrint "Команда 4"
Sleep 10000
ThreadTimer::Stop
SectionEnd
Function ChekTime
System::Call 'kernel32::GetTickCount(v)i.r1'
IntOp $0 $1 - $Stime
IntOp $1 $0 / 1000
IntOp $0 $0 % 1000
IntOp $2 $1 / 60
IntOp $1 $1 % 60
IntOp $3 $2 / 60
IntOp $2 $2 % 60
StrCpy $Ttime "Прошло $3 часов $2 минут $1 секунд"
!insertmacro MUI_HEADER_TEXT "Установка" "$Ttime"
FunctionEnd