Sachverhalt:
A. Am 28. September 2007 reichten die Ehegatten Y._ ein Baugesuch für den Neubau eines Einfamilienhauses mit Schwimmbad auf dem Grundstück Nr. 2286 in Horw ein. Gegen das Baugesuch erhoben mehrere Nachbarn Einsprache, darunter auch X._ (Eigentümer der Grundstücke Nrn. 2281 und 2285). Mit Entscheid vom 3. April 2008 bewilligte der Gemeinderat Horw das Bauvorhaben unter Bedingungen und Auflagen und wies die Einsprachen ab.
B. Dagegen erhob X._ am 30. April 2008 Beschwerde ans Verwaltungsgericht des Kantons Luzern. Dieses wies die Beschwerde am 9. Januar 2009 ab.
C. Gegen den verwaltungsgerichtlichen Entscheid hat X._ am 13. Februar 2009 Beschwerde in öffentlich-rechtlichen Angelegenheiten ans Bundesgericht erhoben. Er beantragt, der angefochtene Entscheid sei aufzuheben und das Baugesuch abzuweisen bzw. nicht zu bewilligen. Eventualiter sei das Baugesuch mit folgenden Auflagen an die Bauherrschaft zurückzuweisen: Die Stützmauer bzw. die Mauer an der nördlichen Grenze bei der Terrasse sei in der Höhe auf 1 m zu begrenzen und der als Terrasse bezeichnete Balkon sei nicht zu bewilligen.
D. Die Ehegatten Y._ (im Folgenden: die Beschwerdegegner) beantragen, die Beschwerde sei abzuweisen, soweit überhaupt darauf einzutreten sei. Das Verwaltungsgericht und der Gemeinderat Horw schliessen auf Abweisung der Beschwerde.
In seiner Replik vom 20. Mai 2009 hält der Beschwerdeführer an seinen Anträgen fest.
E. Mit Verfügung vom 20. März 2009 wurde das Gesuch um Gewährung der aufschiebenden Wirkung abgewiesen.

Erwägungen:
1. Gegen den kantonal letztinstanzlichen Endentscheid des Luzerner Verwaltungsgerichts, der eine Baubewilligung bestätigt, steht grundsätzlich die Beschwerde in öffentlich-rechtlichen Angelegenheiten offen (<ref-law>). Der Beschwerdeführer ist Eigentümer von zwei Grundstücken, die unmittelbar westlich und nordwestlich an das Baugrundstück angrenzen. Er befürchtet, die über einem Sitzplatz vorgesehene Terrasse mit Sichtschutzmauer werde ihm die Sicht auf den See versperren. Er hat damit ein schutzwürdiges Interesse an der Aufhebung oder Abänderung des angefochtenen Entscheids und ist zur Beschwerde legitimiert (<ref-law>).
Der Beschwerdeführer rügt die willkürliche Anwendung bzw. Umgehung von Vorschriften des Bebauungsplans "Halten-Oberrüti" der Gemeinde Horw vom 28. April 1988 (im Folgenden: Bebauungsplan). Das Bundesgericht prüft die Verletzung von Grundrechten und namentlich des Willkürverbots (<ref-law>) nicht von Amtes wegen, sondern nur insofern, als eine solche Rüge in der Beschwerde vorgebracht und genügend begründet worden ist (Art. 106 Abs. 2 i.V.m. <ref-law>).
Willkür liegt nach der Rechtsprechung nicht schon dann vor, wenn eine andere Lösung ebenfalls vertretbar erscheint oder sogar vorzuziehen wäre. Das Bundesgericht weicht vom Entscheid der kantonalen Instanz nur ab, wenn dieser offensichtlich unhaltbar ist, mit der tatsächlichen Situation in klarem Widerspruch steht, eine Norm oder einen unumstrittenen Rechtsgrundsatz krass verletzt oder in stossender Weise dem Gerechtigkeitsgedanken zuwiderläuft (<ref-ruling> E. 2a S. 168; <ref-ruling> E. 3a S. 15, 129 E. 5b S. 134; je mit Hinweisen). Dabei genügt es nicht, wenn sich nur die Begründung des angefochtenen Entscheides als unhaltbar erweist. Die Aufhebung eines Entscheides rechtfertigt sich nur, wenn dieser auch im Ergebnis verfassungswidrig ist (<ref-ruling> E. 2 S. 139 mit Hinweisen).
2. Der Beschwerdeführer rügt die willkürliche Nichtanwendung von Art. 21 Abs. 1 Bebauungsplan. Danach dürfen Stützmauern nicht höher als 1 m sein; ist eine grössere Höhe erforderlich, sind sie abzustufen und zu begrünen.
2.1 Der Beschwerdeführer ist der Auffassung, die Mauer, die den nördlichen Abschluss der Terrasse bildet, habe Stützfunktion und müsse deshalb in der Höhe auf 1 m begrenzt werden. Das Verwaltungsgericht verneinte dies, weil das Gelände beidseits der streitigen Mauer dieselbe Höhe aufweise.
Der Beschwerdeführer räumt ein, dass das Gelände nach den vorgesehenen Aufschüttungen beidseits der Mauer dieselbe Höhe aufweisen werde; das darunter liegende gewachsene Gelände falle jedoch nach wie vor ab, so dass weiterhin Rutschgefahr bestehe. Insofern habe die Mauer nebst dem Sichtschutz auch eine Stützfunktion.
Im Übrigen sei nicht einzusehen, weshalb Stützmauern, die eine notwendige Sicherheitsfunktion erfüllen, auf 1 m begrenzt werden müssen, dagegen andere Mauern, die lediglich dem Sichtschutz dienen, unbegrenzt zulässig sein sollen. Art. 21 Bebauungsplan diene generell dem Schutz der Nachbarschaft vor störenden, die Aussicht beeinträchtigenden Mauern. Auch aus diesem Grund sei es willkürlich, die streitige Mauer zuzulassen, selbst wenn diese nur dem Sichtschutz diene.
2.2 Die Beschwerdegegner bestreiten, dass die streitige Mauer die Aussicht des Beschwerdeführers auf den See beeinträchtige und weisen darauf hin, dass ihr Bauvorhaben die maximal zulässige Firsthöhe um 1.20 m unterschreite. Die streitige Mauer habe keine Stützfunktion; vielmehr handle es sich um einen Fassadenbestandteil: Die Mauer sei die Rückwand des gedeckten Sitzplatzes und zugleich Bestandteil des Abstellraums für Gartengeräte.
Die Beschwerdegegner bestreiten, dass Art. 21 Abs. 1 Bebauungsplan die Aussicht der Nachbarschaft schützen wolle. Vielmehr solle die Bestimmung überhohe Mauern zur Stützung des Terrains und damit einhergehende massive Aufschüttungen verhindern. Ziel sei es somit, den bestehenden Terrainverlauf möglichst wenig zu ändern.
2.3 Aus den Plänen (insbes. Plan 95-103, Schnitt D Sitzplatz 1: 100) ergibt sich, dass das in Nord-Süd-Richtung abfallende gewachsene Terrain für die Erstellung des Hauses einschliesslich des Sitzplatzes mit darüberliegender Terrasse nivelliert werden soll; hierfür wird am nördlichen und am südlichen Rand des nivellierten Geländes je eine Stützmauer erstellt. Die vorliegend streitige Mauer steht etwa in der Mitte zwischen diesen beiden Stützmauern, auf ebenem Terrain. Insofern durfte das Verwaltungsgericht ohne Willkür davon ausgehen, dass sie keine Stützfunktion erfüllt. Die Auffassung des Beschwerdeführers, wonach im abfallenden Gelände jede Mauer eine gewisse Stützfunktion erfülle, hätte zur Folge, dass im gesamten Gebiet Halten-Oberrüti maximal 1 m hoch gebaut werden dürfte; dies kann nicht die Absicht des kommunalen Gesetzgebers gewesen sein.
Zwar sind die Beschwerdeführer der Auffassung, dass Art. 21 Abs. 1 Bebauungsplan auch auf Sichtschutzmauern ohne Stützfunktion anwendbar sei. Sie legen aber nicht dar, weshalb diese Auslegung zwingend und die gegenteilige Auffassung von Gemeinde und Verwaltungsgericht willkürlich sei. Dies ist auch nicht ersichtlich: Von seinem Wortlaut her bezieht sich Art. 21 Bebauungsplan nur auf Stützmauern. Die Gemeinde Horw, die den Bebauungsplan erlassen hat, hielt in ihrer Vernehmlassung vor Verwaltungsgericht fest, dass Art. 21 Bebauungsplan nicht dem Schutz der Aussicht diene. Die Bestimmung befindet sich im Abschnitt V "Umgebungsgestaltung bei Neubauten", unmittelbar vor Art. 22 (Terrainveränderungen). Dies spricht für die Auslegung der Vorinstanzen, wonach Art. 21 Terrainveränderungen begrenzen soll.
Die Rüge erweist sich somit als unbegründet, soweit darauf überhaupt eingetreten werden kann.
3. Weiter rügt der Beschwerdeführer, die streitige Terrasse mit Sichtschutzmauer sei als Balkon zu qualifizieren. Gemäss Art. 18 Abs. 2 Bebauungsplan sollen Balkone in der Regel die Hausecken nicht überragen. Diese Bestimmung sei von den Vorinstanzen willkürlich umgangen worden.
3.1 Das Verwaltungsgericht nahm an, die streitige Mauer stelle einen Teil der Fassade dar und sei deshalb bei der Berechnung des Grenzabstands berücksichtigt worden. Ein Balkon sei dagegen eine Auskragung, die nicht Bestandteil der Fassade sei, und deshalb auch keinen Einfluss auf die Berechnung des Grenzabstandes habe. Das Verwaltungsgericht verwies hierfür auf § 120 Abs. 3 des Luzerner Planungs- und Baugesetzes vom 7. März 1989 (PBG).
3.2 Der Beschwerdeführer hält diese Auslegung für willkürlich, weil nicht einzusehen sei, weshalb ein Balkon verboten, aber ein Balkon mit einer Mauer davor erlaubt sei, nur weil diese Mauer bei der Berechnung des Grenzabstands zur Fassade gerechnet worden sei. Die Umgebung werde durch die Mauer noch wesentlich mehr beeinträchtigt, als wenn nur ein Balkon die Hausecke überragen würde.
Werde die Mauer beim Balkon zur Fassade gerechnet, müsste der dahinter liegende Teil als Teil des Hauptbauwerks konsequenterweise zur Ausnützungsziffer hinzugerechnet werden. Dies würde in casu zu einer Überschreitung der zulässigen Ausnützungsziffer führen.
Der Beschwerdeführer ist der Auffassung, dass eine Terrasse stets ebenerdig sei; der vorliegend streitige Bauteil liege dagegen weit oberhalb des gewachsenen Terrains, weshalb es sich um einen Balkon handle. Dieser sei nur deshalb als Terrasse bezeichnet worden, um das Balkonverbot des Bebauungsplans zu umgehen.
3.3 Es ist bereits fraglich, ob auf diese Rüge eingetreten werden kann, nachdem sich der Beschwerdeführer mit der vom Verwaltungsgericht für massgeblich erachteten Norm (§ 120 Abs. 3 PBG) nicht auseinandersetzt. Jedenfalls aber lassen die Ausführungen des Verwaltungsgerichts keine Willkür erkennen. Sie stützen sich auf die Begriffsbestimmungen des PBG und nehmen eine plausible Abgrenzung vor zwischen Fassadenbestandteilen einerseits (die für die Berechnung des gesetzlichen Grenzabstands gemäss PBG massgeblich sind) und Balkonen andererseits (deren Ausmasse grundsätzlich vom kommunalen Recht bestimmt werden).
Eine andere Frage ist, ob die zur Fassade gehörenden Bauteile bzw. die davon umschlossenen Flächen zur anrechnenbaren Geschossfläche gemäss §§ 9 ff. der Luzerner Planungs- und Bauverordnung vom 27. November 2001 (PBV) zählen. Diese Regelung (mit der sich der Beschwerdeführer ebenfalls nicht auseinandersetzt) betrifft nur abgeschlossene Räume; von der Anrechnung ausgenommen sind nicht nur (verglaste) Balkone, sondern auch andere Räume. Insofern ist nicht ersichtlich, weshalb die Ausnützungsberechnung für die Anwendung von Art. 18 Abs. 2 Bebauungsplan massgeblich sein sollte.
4. Die Beschwerde erweist sich somit als unbegründet und ist abzuweisen, soweit darauf einzutreten ist. Bei diesem Ausgang des Verfahrens wird der Beschwerdeführer kosten- und entschädigungspflichtig (Art. 66 und 69 BGG).

Demnach erkennt das Bundesgericht:
1. Die Beschwerde wird abgewiesen, soweit darauf einzutreten ist.
2. Die Gerichtskosten von Fr. 3'000.-- werden dem Beschwerdeführer auferlegt.
3. Der Beschwerdeführer hat die privaten Beschwerdegegner für das bundesgerichtliche Verfahren mit Fr. 3'000.-- zu entschädigen.
4. Dieses Urteil wird den Parteien, dem Gemeinderat Horw und dem Verwaltungsgericht des Kantons Luzern, Verwaltungsrechtliche Abteilung, schriftlich mitgeteilt.
Lausanne, 3. Juni 2009
Im Namen der I. öffentlich-rechtlichen Abteilung
des Schweizerischen Bundesgerichts
Der Präsident: Die Gerichtsschreiberin:
Féraud Gerber