This question isn't framed (hah, pun) quite right. Start of frame detection isn't an alternative to PTP, but rather an augmentation of it. In a PTP implementation, you must choose how you actually timestamp the ingressing/egressing packets. A trivial method to do this is software timestamping, wherein your PTP implementation fetches current system time and applies it as the timestamp, possibly with some rudimentary compensation for hardware delays and such. Any 'ol Ethernet transceiver can do this, but it will be quite imprecise compared to other methods.
A better method is "start of frame" detection (hence "SOF"), wherein the packet is timestamped by the MAC by detecting the start of a IEEE 1588 frame, allowing greater precision. In order to achieve this, the MAC must support PTP SOF detection -- for instance, TI's DP83822.
An even better method is hardware timestamping, which relies on building the timestamping support into the PHY itself. This is the best method, and is commonly seen on PTP master, grandmaster, and transparent clocks, as well as slave clocks that require it. TI's DP83640 supports this method.
Sources: This TI blogpost covers it, and I used to work on network clocks.