Dein Thread ist nicht notwendig. Das siehst du im Execute() ja selbst, der macht nichts, außer ständig zu schlafen und aufzuwachen und wieder zu schlafen.
Du liegst völlig richtig, dass nichts "verhindert", dass der Server auch mehrere Anfragen gleichzeitig bearbeiten würde die auf dem gleichen Datenbestand arbeiten - Deshalb muss man das entsprechend absichern. Entweder übersehe ich etwas, aber ich sehe das nicht auf Aufgabe des Servers, dessen Aufgabe ist ja nur, über Http die Daten entgegen zu nehmen, zu interpretieren und meinetwegen dann etwas entsprechendes auszulösen. Deine Klasse die sich z.B. um deine beispielhafte ObjectList kümmert sollte damit klarkommen, bzw. so gebaut sein, dass sie sich parallel ansprechen lässt und der Datenzustand konsistent ist. Siehe z.B.:
https://de.wikipedia.org/wiki/ACID