As you rightly point out, since every function from $X$ to any other metric space $Y$ is continuous, every subset of $X$ is an open set.
(By the way, are you sure that the question doesn't mean "every function from $X$ to $X$ is continuous"?)
In the study of general topology, when every subset of $X$ is an open set, we say that $X$ has the discrete topology.
Let's now apply the condition about uniform continuity. My first instinct is that the infimum of $d(x,y)$ for $x\neq y$ has a role to play. And indeed it does. Let's call the infimum $r$.
If $r>0$, then every function is of course uniformly continuous. The image of each $s$-ball is a single point, for $s<r$.
What if $r=0$?
Then, with the help of the axiom of choice, choose sequences $x_i,x'_i$ such that $d(x_i,x'_i)$ decreases strictly to $0$, and such that all these points are distinct, i.e. no point is used more than once here.
Now, you can construct a function from $X$ to $X$, which sends $x_i$ to $x_1$, and $x'_i$ to $x'_1$. It wouldn't matter where the function sends any other point. The function is not uniformly continuous.
$\\$
In conclusion, for metric spaces $X$,
"every function on $X$ is uniformly continuous" is equivalent to
"there is some $c>0$ such that all pairs of points have distance at least $c$".
$\\$
EDIT: I forgot to explain a subtle technical point.
We know that a subset containing only one point $p$ is open. This means that for each $p$, there is some radius $s_p$ such that the open ball $B(p,s_p)$ contains only $p$.
This point is relevant to the following question. When we were dealing with the case $r=0$, how can we be sure that we can choose $x_i,x'_i$, so that we do not use any point more than once? (We want to ensure this, because we want all the $x_i$ to be mapped to $x_1$, and all the $x'_i$ to be mapped to a point $x'_1$ which is different from $x_1$. If $x'_6=x_4$, for example, then $x'_6$ will map to both $x'_1$ and $x_1$, which we don't want.)
We can do this, as shown by induction. Suppose you have already chosen $x_1,\ldots,x_n$ and $x'_1,\ldots,x'_n$. We want to choose $x_{n+1}$ and $x'_{n+1}$ so that neither equals any of those. Just draw an open ball around each of those such that each open ball contains only that one point.
Take the minimum $m$ of those radii. And declare that $x_{n+1}$ and $x'_{n+1}$ will have distance less than $m$. Such a choice is always possible, because the infimum of $d(x,y)$ for $x\neq y$ is assumed to be $0$.
It follows that $x_{n+1}$ and $x'_{n+1}$ do not repeat the previous points, because the open ball of radius $m$ around $x_{n+1}$ contains $x'_{n+1}$, and vice versa. Yet an open ball of radius $m$ around each of the previous points contains only one point.
Best Answer
It seems that the following is the proof.
2) $\Rightarrow $ 1). Suppose that there is a compact subset $K$ of $X$ such that the sequence $f_n|K$ does not converge uniformly to $f|K$. Therefore there are a number $\varepsilon>0$, a strictly monotone sequence $\{m_k\}$ of positive integer numbers and a sequence $\{x_{m_k}\}$ of points of $K$ such that $d(f_{m_k}(x_{m_k}),f(x_{m_k}))>\varepsilon$ for each $k$. Since $K$ is compact, the sequence $\{x_{m_k}\}$ has a subsequence $\{x_{n_k}\}$ convergent to a some point $x\in K$. For each $n$ put $x_n=x_{k(n)}$, where $k(n)=\min\{n_k:n_k\ge n\}$. Then the sequence $\{x_n\}$ coverges to the point $x$ too. Therefore the sequence $\{f(x_n)\}$ converges to the point $f(x)$. Since the function $f$ is continuous at the point $x$, there is a neighborhood $U$ of $x$ such that $d(f(y),f(x))<\varepsilon/2$ for each point $y\in U$. Since the sequence $\{f(x_n)\}$ converges to the point $f(x)$, there is a number $N$ such that $d(f(x_n),f(x))<\varepsilon/2$ for each $n>N$. Since the sequence $\{x_{n_k}\}$ converges to the point $x$, there is a number $n_k>N$ such that $x_{n_k}\in U$. Then $\varepsilon=\varepsilon/2+\varepsilon/2>$ $d(f_{n_k}(x_{n_k}),f(x))+d(f(x),f(x_{n_k}))\ge d(f_{n_k}(x_{n_k}),f(x_{n_k}))>\varepsilon,$ a contradiction.
1) $\Rightarrow $ 2). Suppose that the function $f$ is discontinuous at some point $x\in X$. Then there are a number $\varepsilon>0$ and a sequence $\{x_n\}$ of points of $X$, convergent to $x$ such that $d(f(x_n),f(x))>\varepsilon$ for each $n$. Put $K=\{x\}\cup \{x_n\}$. Since each open neighborhood of the point $x$ contains all but finitely many elements of the sequence $\{x_n\}$, we see that the set $K$ is compact. Therefore the sequence $f_n|K$ converges uniformly to $f|K$. Thus there is a number $M$ such that $d(f_m(y), f(y))<\varepsilon/3$ for each $m>M$ and $y\in K$. Put $m=M+1$. Since the function $f_m$ is continuous at the point $x$, there is a neighborhood $U$ of $x$ such that $d(f_m(y),f_m(x))<\varepsilon/3$ for each point $y\in U$. Since the sequence $\{x_n\}$ converges to $x$, there is a number $n$ such that $x_n\in U$. Then $\varepsilon=\varepsilon/3+\varepsilon/3+\varepsilon/3>$ $d(f(x_n),f_m(x_n))+d(f_m(x_n),f_m(x))+d(f_m(x),f(x))\ge d(f(x_n),f(x))>\varepsilon$, a contradiction.
Let $\{x_n\}$ be a sequence of points of $X$, convergent to a point $x\in X$ and $\varepsilon>0$ be an arbitrary number. Put $K=\{x\}\cup \{x_n\}$. Then $K$ is compact. Therefore the sequence $f_n|K$ converges uniformly to $f|K$. Thus there is a number $M$ such that $d(f_m(y), f(y))<\varepsilon/2$ for each $m>M$ and $y\in K$. Since the function $f$ is continuous at the point $x$, there is a neighborhood $U$ of $x$ such that $d(f(y),f(x))<\varepsilon/2$ for each point $y\in U$. Since the sequence $\{x_n\}$ converges to $x$, there is a number $N\ge M$ such that $x_n\in U$ for each $n>N$. Then $d(f_n(x_n),f(x))\le d(f_n(x_n),f(x_n))+ d(f(x_n),f(x))<$ $\varepsilon/2+\varepsilon/2=\varepsilon$.