Before you can make a 1kHz sinewave oscillator with constant output level and better than 120dB harmonic distortion you'll need an oscillator which does better than that when it passes through the required output level. The circuit below was simulated in LTSpice 24.1.0 with all updates. There are reasons why I'm not sure I'd trust version 17.x of LTSpice to give the most accurate results but I haven't tested this circuit in any other version. After starting the simulation, wait until it has simulated about 7 seconds and then stop the simulation. Close the annoying log window which 24.1.0 will produce. You can now select a sample of about 100ms when it passes through 0dB (just under 2V) and run an FFT on it with Blackman-Harris window. This will show that this circuit is approaching 120dB down on harmonics. So if you want to do better than that then you'll need an oscillator circuit which has better performance to begin with. You can then add gain control for constant level. I've not so far found an oscillator circuit in LTSpice with better harmonic distortion performance than this one. You can, of course, try to use filtering to reduce the unwanted harmonics. Removing the first four harmonics produced by this circuit will get it approaching 130dB but don't ask me how that would be measured in reality or what it would cost to do so even if it can be measured.
Version 4.1 SHEET 1 2196 932 WIRE 0 -416 0 -448 WIRE 208 -288 48 -288 WIRE 944 -288 848 -288 WIRE 1136 -288 1008 -288 WIRE 112 -208 112 -240 WIRE 48 -192 48 -288 WIRE 80 -192 48 -192 WIRE 480 -192 416 -192 WIRE 608 -192 544 -192 WIRE 848 -192 848 -288 WIRE 944 -192 848 -192 WIRE 1136 -192 1136 -288 WIRE 1136 -192 1024 -192 WIRE 208 -176 208 -288 WIRE 208 -176 144 -176 WIRE 256 -176 208 -176 WIRE 288 -176 256 -176 WIRE 0 -160 0 -336 WIRE 80 -160 0 -160 WIRE -224 -144 -224 -240 WIRE 0 -112 0 -160 WIRE 0 -112 -64 -112 WIRE 112 -112 112 -144 WIRE 416 -96 416 -192 WIRE 480 -96 416 -96 WIRE 608 -96 608 -192 WIRE 608 -96 560 -96 WIRE 848 -96 848 -192 WIRE 896 -96 848 -96 WIRE 1008 -96 976 -96 WIRE 1136 -96 1136 -192 WIRE 1136 -96 1088 -96 WIRE 0 -80 0 -112 WIRE -64 -64 -64 -112 WIRE 496 0 496 -16 WIRE 416 16 416 -96 WIRE 416 16 352 16 WIRE 464 16 416 16 WIRE 928 16 928 0 WIRE 1136 16 1136 -96 WIRE 1168 16 1136 16 WIRE 1296 16 1248 16 WIRE 1456 16 1360 16 WIRE 1520 16 1456 16 WIRE -224 32 -224 -64 WIRE -64 32 -64 0 WIRE 0 32 0 0 WIRE 608 32 608 -96 WIRE 608 32 528 32 WIRE 640 32 608 32 WIRE 720 32 704 32 WIRE 848 32 848 -96 WIRE 848 32 800 32 WIRE 896 32 848 32 WIRE 432 48 416 48 WIRE 464 48 432 48 WIRE 1136 48 1136 16 WIRE 1136 48 960 48 WIRE 864 64 848 64 WIRE 896 64 864 64 WIRE 496 80 496 64 WIRE 1520 80 1520 16 WIRE 928 96 928 80 WIRE 1520 176 1520 160 WIRE 352 224 352 16 WIRE 480 224 352 224 WIRE 640 224 560 224 WIRE 1136 224 1136 48 WIRE 1136 224 720 224 FLAG 496 -16 V+ FLAG 928 0 V+ FLAG 1520 176 0 FLAG 1456 16 output FLAG -224 32 0 FLAG 496 80 0 FLAG 928 96 0 FLAG -224 -240 V+ FLAG 432 48 half FLAG 864 64 half FLAG 112 -112 0 FLAG 112 -240 V+ FLAG 256 -176 half FLAG 0 32 0 FLAG 0 -448 V+ FLAG -64 32 0 SYMBOL voltage -224 -160 R0 WINDOW 123 0 0 Left 0 WINDOW 39 10 135 Left 2 WINDOW 0 10 0 Left 2 WINDOW 3 15 104 Left 2 SYMATTR InstName V2 SYMATTR Value 32 SYMBOL res 1040 -208 R90 WINDOW 0 0 56 VBottom 2 WINDOW 3 32 56 VTop 2 SYMATTR InstName R9 SYMATTR Value 15k SYMBOL res 816 16 R90 WINDOW 0 0 56 VBottom 2 WINDOW 3 32 56 VTop 2 SYMATTR InstName R12 SYMATTR Value 8.2K SYMBOL cap 1008 -304 R90 WINDOW 0 0 32 VBottom 2 WINDOW 3 32 32 VTop 2 SYMATTR InstName C2 SYMATTR Value 10n SYMATTR SpiceLine V=16 Irms=647m Rser=0.0322889 Lser=0 mfg="KEMET" pn="C0201C103K4PAC" type="X5R" SYMBOL cap 704 16 R90 WINDOW 0 0 32 VBottom 2 WINDOW 3 32 32 VTop 2 SYMATTR InstName C4 SYMATTR Value 22n SYMATTR SpiceLine V=4 Irms=356m Rser=0.150334 Lser=0 mfg="KEMET" pn="C0402C223K7PAC" type="X5R" SYMBOL res 576 -112 R90 WINDOW 0 0 56 VBottom 2 WINDOW 3 32 56 VTop 2 SYMATTR InstName R13 SYMATTR Value 10k SYMBOL cap 544 -208 R90 WINDOW 0 0 32 VBottom 2 WINDOW 3 32 32 VTop 2 SYMATTR InstName C5 SYMATTR Value 22p SYMATTR SpiceLine V=16 Irms=0 Rser=0.3482 Lser=551p mfg="Würth Elektronik" pn="885012006019 WCAP-CSGP 0603" type="NP0" SYMBOL res 736 208 R90 WINDOW 0 0 56 VBottom 2 WINDOW 3 32 56 VTop 2 SYMATTR InstName R14 SYMATTR Value 1388 SYMBOL res 1264 0 R90 WINDOW 0 -4 57 VBottom 2 WINDOW 3 32 56 VTop 2 SYMATTR InstName R7 SYMATTR Value 600 SYMBOL res 1536 176 R180 WINDOW 0 47 75 Left 2 WINDOW 3 36 40 Left 2 SYMATTR InstName R8 SYMATTR Value 600 SYMBOL res -16 -320 M180 WINDOW 0 40 70 Left 2 WINDOW 3 37 41 Left 2 SYMATTR InstName R5 SYMATTR Value 100k SYMBOL res -16 16 M180 WINDOW 0 40 70 Left 2 WINDOW 3 38 43 Left 2 SYMATTR InstName R10 SYMATTR Value 100k SYMBOL cap -48 0 R180 WINDOW 0 24 56 Left 2 WINDOW 3 24 8 Left 2 SYMATTR InstName C1 SYMATTR Value 10n SYMATTR SpiceLine V=50 Irms=291m Rser=0.34258 Lser=0 mfg="KEMET" pn="C0805F103K5RAC" type="X7R" SYMBOL cap 1360 0 R90 WINDOW 0 0 32 VBottom 2 WINDOW 3 32 32 VTop 2 SYMATTR InstName C6 SYMATTR Value 10000n SYMATTR SpiceLine V=25 Irms=0 Rser=0 Lser=0 mfg="Murata" pn="GRM188R61E106MA73" type="X5R" SYMBOL res 992 -112 R90 WINDOW 0 0 56 VBottom 2 WINDOW 3 32 56 VTop 2 SYMATTR InstName R11 SYMATTR Value 150k SYMBOL res 576 208 R90 WINDOW 0 0 56 VBottom 2 WINDOW 3 32 56 VTop 2 SYMATTR InstName R15 SYMATTR Value 8.2k SYMBOL res 1104 -112 R90 WINDOW 0 0 56 VBottom 2 WINDOW 3 32 56 VTop 2 SYMATTR InstName R16 SYMATTR Value 47k SYMBOL OpAmps\\LT1058 112 -240 R0 SYMATTR InstName U5 SYMBOL OpAmps\\LT1678 928 48 R0 SYMATTR InstName U3 SYMBOL OpAmps\\LT1678 496 32 R0 SYMATTR InstName U4 TEXT -304 200 Left 2 !.tran 0 30 0 1u uic TEXT -304 152 Left 2 !.options plotwinsize=0 numdgt=7 method=trap TEXT -272 -568 Left 2 ;1kHz low distortion sinewave oscillator. TEXT -272 -536 Left 2 ;23 Jan 2025.