The concept you are looking for is using Random Access Files. These do not exist out-of-the-box with NativeScript. You can read a little about what Xamarin is doing: https://developer.xamarin.com/api/type/Java.IO.RandomAccessFile/
You are essentially skipping byte positions to read/write at different locations in a file stream. This allows you download byte chunks, stop and resume later, as long as you know the last write position in the file stream.
Depending on your skill level, you may be able to accomplish this. If you are more of a junior-leveled dev, I would recommend just allowing the user to “restart” the download process.
Background http plugin offers progress percentage: https://www.npmjs.com/package/nativescript-background-http