Are negative incomes (perhaps even negative prices) also allowed? Unless they are, non-horizontal or non-vertical lines are impossible as Engel curves because they have to intersect the negative quadrant of the coordinate system. I will come back to this later.
Without additional restrictions (perhaps a lot of additional restrictions) on the preference relations, for any non-negative sloped line I can fabricate a utility function such that the line will be its Engel curve.
Let the line $L$ consist of the points $((x,y)\in\mathbb{R}^2|c = a \cdot x + b \cdot y)$ where $a,b,c \in \mathbb{R}$. I will denote this set of points by $L$, the line. It is assumed that we are talking about an actual line, so $a,b$ are not simultaneously equal to $0$.
Let
$$
U(x,y) = \left\{\begin{array}{lc}
\arctan (b \cdot x + a \cdot y) & \text{ if } (x,y) \in L \\
-\pi & \text{ if } (x,y) \notin L.
\end{array}
\right.
$$
Claim The utility function will always be maximized by a point on $L$.
This is easy, because $\arctan$ maps to $(-\frac{\pi}{2},\frac{\pi}{2})$, thus its points always yield greater utility than other points. We specified that the slope of $L$ is non-negative, so for any positive price pair the budget line will cross it, enabling us to chose a point on $L$.
We now come back to the question of whether income $I$ can be negative. If they can be, than every point $L$ will be a solution of the consumers utility maximization problem for a certain $I,p_x,p_y$. The reason for this is that $b \cdot x + a \cdot y$ creates an ordering of the points of $L$. (Lines perpendicular to $L$ have a slope of $-b/a$, these are the level curves of $b \cdot x + a \cdot y$.) Select a point $(x_0,y_0) \in L$. By setting $I$ to
$$
I = p_x \cdot x_0 + p_y \cdot y_0,
$$
the consumer has barely enough money to purchase this basket. If $L$ is non-negative sloped and prices are positive then no points with higher utility are attainable.
The construction I gave is not unique. One could also use the continuous utility function
$$
\hat{U}(x,y) = \min\left(a \cdot \left(x - \frac{c}{a} \right); - b \cdot y\right)
$$
to achieve the same result. (If $a = 0$ one may use
$$
\hat{U}(x,y) = \min\left(a \cdot x; - b \cdot \left(y - \frac{c}{b} \right)\right)
$$
instead.)