Let us assume WLOG that no lines are vertical--if not rotate the plane to make this so [make sure you see that this is indeed possible].
Let us colour the set of points from left to right [no lines are vertical, thus for each line $L$ there is indeed a strict ordering of the points on $L$ from left to right], with the colours 1,2,or 3, as follows.
Colour a leftmost point with the color 1. [As there are only $<n^2$ points there is indeed a leftmost point. Pick one such point arbitrarily]
Let $p$ be a point that satisfies the following: Letting $L_1$ and $L_2$ be the two lines containing $p$ [as only two lines intersect a point there are only two such $L_i$], all points to the left of $p$ on $L_1$ [which recall neither $L_1$ nor $L_2$ is not vertical] have already been colored and all points to the left of $p$ on $L_2$ have already been colored. Then letting $p_i$ be the point immediately to the left of $p$ on $L_i$; $i=1,2$; and writing as $c(p_i)$ the color assigned to $p_i$ for $i=1,2$ [$c(p_i) \in \{1,2,3\}$], let the color $c(p)$ of $p$ be an integer in $\{1,2,3\}$ that is neither $c(p_1)$ nor $c(p_2)$. [There indeed always exists such a $p$ as long as there are still uncoloured points, as a leftmost point of the points not coloured yet always suffices.]
See for yourself that the above algorithm indeed terminates, and that it also terminates with a proper 3-colouring.
Let $C$ be the condition on a line (row/column) that number of red points differs from the number of blue points by at most $1$.
We shall prove the statement by induction on the number of grid points $n=|S|$. Suppose all sets with number of grid points $<n$ can be coloured with red and blue points such that in each row and column, $C$ is satisfied. We shall now prove the statement for $n$ grid points.
Case 1: There is atleast one row or column with an odd number of elements
Call the said row/column $L$. In this case we pick any point $P$ from $L$ and apply our induction hypothesis on $S- \{P\}$, to obtain a colouring of $S- \{P\}$. The number of points in $L- \{P\}$ is even, and therefore must contain equal number of Red and Blue points if it is to satisfying condition $C$. Thus, whether we colour P blue or red, condition $C$ is still satisfied for $L$. Let $L_2$ be the line through $P$ perpendicular to $L$. We colour P red if the number of blue points in $L_2- \{P\}\geq$ number of red points in $L_2- \{P\}$ and blue otherwise. This colouring of $S$ satisfies $C$ for all rows and columns and we are done.
Case 2: All rows and columns have an even number of elements
This case is trickier.
Pick any point $P_1$ and draw a horizontal line through it extending towards either right or left (which ever side has at least $1$ point). Let $P_2$ be the first point it meets. $P_2$ must exist as all rows and columns have an even number of elements. Now draw a vertical line through $P_2$, extending towards either up or down (which ever side has at least $1$ point), and let $P_3$ be the first point it meets. Draw a horizontal line through $P_3$ and so on. Let $j$ be the least number such that $P_j=P_i$ for some $i<j$.($j=11$ in the figure) If $i$ and $j$ have the same parity(for $i=3$ in the figure), $P_iP_{i+1}$ and $P_{j-1}P_{i}$ are perpendicular. If not (if for example, $i=2$ in the figure), increment $i$ by 1. Then, for the new $i$, $P_iP_{i+1}$ and $P_{j-1}P_{i}$ are perpendicular.
Here is a diagram for illustration.
Let $S'=\{P_i,P_{i+1},...,P_{j-1}\}$. We apply induction hypothesis on $S-S'$ and colour $P_i$ blue, $P_{i+1}$ red, $P_{i+2}$ blue and so on till $P_{j-1}$ is coloured Red.
Any line in S goes through a number of pairs of adjacent points of S' with different colours, and through points of $S-S'$ and therefore satisfies $C$. Hence, we are done.
(The base case is trivial and left as an exercise.)
$\blacksquare$
Best Answer
Yes, this can always be done.
Proof. In this case, all three points on a line must receive different colors.
We can think of this problem as a graph theory problem. Consider the bipartite graph with vertices on one side corresponding to the horizontal lines, and vertices on the other side corresponding to the vertical lines. Put an edge between two vertices when the corresponding lines intersect.
This is a regular graph, since every vertex has three edges out of it. Every regular bipartite graph has a perfect matching (this can be proven using Hall's theorem, for example here): a set of edges covering each vertex exactly once. Back in the grid, this corresponds to a set of points such that every line (vertical or horizontal) contains exactly one of them.
Color this set of points red, and remove the corresponding edges from the graph. The remainder is still regular and bipartite (every vertex has two edges left coming out of it), so there is another perfect matching, giving us another set of points with this property.
Color this second set of points green, and the leftover points blue. Now every line has exactly one red, blue, and green point on it.
In general, we can reduce the problem for an arbitrary grid to an instance of the lemma above.
First of all, we can get rid of horizontal lines with more than $3$ points on them. If a line has $k>3$ points, split it up into $\lfloor \frac k3\rfloor$ lines with $3$ points on them, and maybe a leftover line with $1$ or $2$ points. To do this, move the points so that they still have their old $x$-coordinates (and therefore lie on their old vertical lines) but instead of all having the same $y$-coordinate, only share $y$-coordinates in groups of $3$ or less.
If we can color the new arrangement of points, we could color the old arrangement. On each line with $3$ points, each color is used once; if there is a leftover line of $1$ or $2$ points, no color repeats on it. So each color is used at least $\lfloor \frac k3\rfloor $ times, with $1$ or $2$ colors possibly used $\lfloor \frac k3\rfloor + 1$ times, which still satisfies the conditions.
Then do the same thing for the vertical lines.
Second, we can get rid of horizontal lines with $1$ or $2$ points on them. On every such line, add new points to get up to $3$, making sure not to reuse $x$-coordinates (so that every point added lies on a new vertical line). The condition on the resulting line is that all $3$ points must be different colors, so if we get rid of the new points, the old line still satisfies the coloring condition.
Then do the same thing for the vertical lines. Now all vertical lines have exactly $3$ points on them, but there are some horizontal lines with $1$ point on them (the rest have $3$).
The total number of points must be a multiple of $3$ now. So the number of horizontal lines with $1$ point on them is also a multiple of $3$. Group them up in threes, and for every three points $(x_1, y_1)$, $(x_2, y_2)$, $(x_3,y_3)$ we group together, add more points $(x_4,y_1)$, $(x_4,y_2)$, $(x_4,y_3)$ and $(x_5,y_1)$, $(x_5,y_2)$, $(x_5,y_3)$. This creates two new vertical lines with $3$ points on them, and fills the horizontal lines with $1$ point up to $3$.
Now we are in the case of the lemma, and so we can color the points in a way that satisfies the condition. Undo everything we've done (deleting points we added, and merging together lines we split up) and we get a coloring of the original grid.