timeBeginPeriod() erhöht im Prinzip den Heartbeat des Systems, was dazu führt, dass der Scheduler wesentlich öfter aufgerufen wird, was nicht nur nutzlos Energie verschwendet, sondern generell unnötigen Overhead erzeugt. Insbesondere wenn Anwendungen wie Spiele oder ein Videoplayer laufen, willst du deine CPU normalerweise eher möglichst produktiv einsetzen und indem du mit timeBeginPeriod() die Anzahl der Kernel Mode Switches pro Sekunde um ca. Faktor 15 erhöhst, erreichst du mit Sicherheit eher das Gegenteil...
Mag sein, dass du mit Tearing in Windows XP da einen Fall hast, wo dies tatsächlich die einzige Möglichkeit ist, Symtome zu lindern (hab mit dem Problem nicht genug Erfahrung, um das zu beurteilen). Eine wirkliche Lösung des zugrundeliegenden Problems wird timeBeginPeriod() aber rein prinzipiell nicht liefern und unter aktuellen Versionen von Windows gibt es wie gesagt bessere Möglichkeiten (abgesehen davon, dass ab Windows Vista mit aktiviertem DWM auf einem Monitor sowieso kein Tearing mehr auftreten kann)...