Prior to the 1990s, disk drives were somewhat like a tape recorder with a short loop of tape, and an ability to move the drive head to select a track. Information is written to disks using sequences of magnetic pulses with varying amounts of time between them. Depending upon the physical properties of the media, there will be limits as to the minimum and maximum amounts of time between pulses, as well as the timing accuracy with which that time can be measured. To allow for this, bytes are encoded using different patterns of pulse lengths. Certain patterns of pulse lengths will never appear in data and are thus used as synchronization markers.
When a disk is low-level formatted, the head is moved to each track and set to record, at which time the drive will then write the sequence "sync marker + sector header, short gap, sync marker + sector data, longer gap" once per sector. Each sector header contains the sector number recorded within it; to read a sector, the drive starts by listening for a sector header with a proper sector number, and then once that is heard, listens for the next sync marker and captures the data that follows. To write a sector, the drive waits for the sync marker for the proper sector, switches to write mode, writes a sync marker along with the proper data and a small amount of trailing junk which is guaranteed not to look like a sync marker, and switches to read mode.
Note that while a drive is reading data, it can "round" pulse widths up or down so as to tolerate variations in rotation speed. When writing a sector, the widths of pulses will be fixed independent of rotation speed. Thus, speed variations may cause an overwritten sector to not precisely match the length of the original. The gaps between sectors make it possible for a drive to tolerate this imprecision, but such imprecision makes it impossible to write part of a sector. Effectively, every separately-writable area of the disk must be preceded by a sector header and followed by a gap. The more finely one wants to be able to update individual chunks of data, the larger the fraction of overall space that will be devoted to the headers and the gaps.