Let R2 = 0.97 megohms as you specify, so 10 microamperes = Q6_Ic = Q7_Ic = Q8_Ic.5 microamperes = Q1_Ic = Q2_Ic, so (5 microamperes)/(25 millivolts) = 200 microamperes/volt = 200 micromhos = Q1_Gm = Q2_Gm.The input AC signal is split equally between Q1 and Q2, and Q1's collector current is mirrored by Q3 and Q4, so the transconductance Gm_Vg_to_Q5B from the input AC Vg to the base of Q5, is the same as Q2_Gm: Gm_Vg_to_Q5B = Q2_Gm = 200 micromhos.Say Q5_beta = 500 microamperes/microampere.Transconductance from input to output GM_Vg_Vout = Gm_Vg_to_Q5B * Q5_beta = 200 micromhos * 500 = 100,000 micromhos = 100 millimhos = 0.1 mhos = 0.1 amperes/volt.Multiply Gm_Vg_Vout = 0.1 amperes/volt by R1 = 15000 ohms to get Vout/Vg = 1500 volts/volt, agreeing with your result.The available pullup output current from Q5's collector, is Q7_Ic = 10 microamperes times Q5_beta = 500: Q5_Ic_max = 5 milliamperes. This is plenty to drive R1.The available pulldown output current from Q8's collector, is Q8_Ic = 10 microamperes. You need to keep Vg small enough to keep the peak current in R1 below 10 microamperes, to avoid signal clipping: Vout_peak < Q8_Ic * R1 = 150 millivolts, giving Vg_peak < 0.1 millivolt to avoid signal clipping.To handle larger signals, decrease R2 to increase the currents, and add two resistors and a capacitor to control the gain.