The simplest way is to read in the records and write them to a temp file until you get to the point of insertions. Then write the new record(s) to the temp file. Then read the remaining records and write them to the temp file. Then rename the temp file to the original file name.
You can also read or seek to the point of insertions, read all the remainder of the file to a buffer, seek back to the point of insertion, insert the new data, then rewrite the buffered material. It is more complicated, prone to error, and may require a very large buffer.
Unless you write your own extremely low-level disk access mechanisms, you aren't able to break the chain of information, insert new material, and rechain (like a linked list). Even if you did, you'd have to contend with rewriting parts of sectors if the insertion point didn't happen to coincide precisely with sector end/beginning.