How many distinct lines pass through the point $(0, 2016)$ and intersect the parabola $y = x^2$ at two lattice points?  (A lattice point is a point whose coordinates are integers.)
1. Let the line intersect the parabola \( y = x^2 \) at two lattice points \((x_1, x_1^2)\) and \((x_2, x_2^2)\). The line also passes through the point \((0, 2016)\).

2. The equation of the line passing through \((0, 2016)\) and \((x_1, x_1^2)\) can be written as:
   \[
   y - 2016 = m(x - 0) \implies y = mx + 2016
   \]
   where \(m\) is the slope of the line.

3. Since the line also passes through \((x_2, x_2^2)\), we have:
   \[
   x_2^2 = mx_2 + 2016
   \]

4. The slope \(m\) can be determined by the two points \((x_1, x_1^2)\) and \((x_2, x_2^2)\):
   \[
   m = \frac{x_2^2 - x_1^2}{x_2 - x_1} = x_1 + x_2
   \]
   Therefore, the equation of the line becomes:
   \[
   y = (x_1 + x_2)x + 2016
   \]

5. Substituting \(y = x_1^2\) into the line equation when \(x = x_1\):
   \[
   x_1^2 = (x_1 + x_2)x_1 + 2016
   \]
   Simplifying, we get:
   \[
   x_1^2 = x_1^2 + x_1 x_2 + 2016 \implies x_1 x_2 = -2016
   \]

6. We need to find pairs \((x_1, x_2)\) such that \(x_1 x_2 = -2016\) and both \(x_1\) and \(x_2\) are integers. 

7. The number 2016 can be factored into its prime factors:
   \[
   2016 = 2^5 \cdot 3^2 \cdot 7
   \]
   The total number of divisors of 2016 is:
   \[
   (5+1)(2+1)(1+1) = 6 \cdot 3 \cdot 2 = 36
   \]

8. Since \(x_1 x_2 = -2016\), for each positive divisor \(d\) of 2016, there is a corresponding negative divisor \(-\frac{2016}{d}\). Thus, there are 36 pairs \((x_1, x_2)\) such that \(x_1 x_2 = -2016\).

9. Each pair \((x_1, x_2)\) corresponds to a distinct line passing through \((0, 2016)\) and intersecting the parabola \(y = x^2\) at two lattice points.

Therefore, the number of distinct lines is \(\boxed{36}\).