This question has been answered in multiple times.
People end saying that the only way is to copy the bytes of the old file to a new file, then insert the new bytes and finish copying the remaining bytes from the old file. Then delete the old file and rename the new.
But my question is more related on what technique are applying the best text/binary editors. If I open a very large binary file (480MB) and I add 4 bytes at the beginning with HxD and notepad++ it seems that the programs are copying whole the file because I can see a 100% activity on the HDD and the data speed being written (3-4 seconds writting at ~100MB/s). May I suppose that the only way is to copy the data to a temp file?
The only way to add/remove bytes to/from a file somewhere else than at the end is to rewrite anything after those bytes. You can do that in-place but using a temp file is usually easier and safer since the original file is not touched until the new one has been written.
To insert N bytes in-place you need to read at least N bytes from the position where you want to insert it. Then you write the new bytes, overwriting N bytes. But you just read them so you can now write them back. However, that will again overwrite N bytes so you need to read those first. As you can see it involves a lot of seeking - storing all the remaining data in memory would be much easier and faster for a file that is not too large. For a large file one usually uses a temporary files to avoid this hassle.