The increments are part of the API spec: See this link.
datetime values are rounded to increments of .000, .003, or .007
seconds, as shown in the following table.
I found this link which has at the end a better explanation. Quote:
Actually, SQL Server does store there the clock-ticks since midnight.
Each clock-tick is equivalent to 3.33 milliseconds. That’s also the
reason why the DATETIME datatype has an accuracy of one
three-hundredth of a second.
DATETIME is 2 x 4 bytes (date + time). The time part is stored as number of ticks since midnight. Each tick is 3.33 ms
If you need more precision, take a look at DATETIME2 type. DATETIME2 Accuracy is 100ns.