Is it possible to design a programming task that is unsolvable? Can a problem (described by a set of inputs and accepted answers) be designed such that for all programs which produce an answer in finite time for a (countably) infinite number of inputs, at least one of those outputs is incorrect. 

That is, the program need not terminate for all outputs, but the outputs it does generate must all be correct, and there must be an infinite number of inputs for which it will terminate.

Not too sure about this, but my intuition says that the question may be related to the Halting problem/Turing machines.

As an example, the halting problem, (as far as I understand) does not meet this requirement, as one could run the input program, and output "terminated" if it terminates. If the input program never terminates, nor does the solution, so it never generates an incorrect output.
A simplified example can be the following:

$$T( n ) = \begin{cases}
\max \{ M(n) \mid |M| \leq n \} + 1 &amp; \text{if such max exists}\\
0 &amp;\text{otherwise.}
\end{cases}$$

In other words the "unprogrammable" (uncomputable) task&nbsp;$T$ (or better uncomputable function&nbsp;$T$) simply picks all programs&nbsp;$M$ of size at most&nbsp;$n$ as "input" and outputs the maximum value that they output on input&nbsp;$n$, plus 1.

Given a program $M_i$ that satisfies your assumption ( ... which produce an answer in finite time for a (countably) infinite number of inputs ...), there will always be an $x_0$ such that $|M_i| &lt; x_0$ and $M_i$ on $x_0$ halts, and we have:

$$M_i(x_0) \leq \max \{ M(x_0) \mid |M| \leq x_0 \} &lt; T(x_0)\,.$$