Detesto FASM ... al menos tenes que llamar a InitCommonControls/InitCommonControlsEx (fue en lo primero que pense al leer el hilo pero la explicacion me confundio, no se creaba el control ...), CreateWindowEx en createlv devuelve 0.
Sigo viendo, esto tambien esta mal:
invoke SendMessage,[dlglvhwnd], LVM_INSERTITEM,0,
[lvi]invoke SendMessage,[dlglvhwnd], LVM_INSERTITEM,0,
lviLo mismo para la columna (lvc no [lvc]) y sacando WindowProc2 ya podes seguir