I liked this problem, it takes me way back! Here's my approach. It does rely on a few geometric notions but I like to think it is reasonably elementary and not too ugly (and that there are no mistakes).
Set
$ a := \inf \left\{ x \in [0,T] \; : \; f(x) \geq R \right\} $
$ b := \sup\left\{ x \in [0,T] \; : \; f(x) \geq R \right\} $
Let us focus on the general case in which $f(a) = f(b) = R$ (this will always happen if, say, $a$ and $b$ fall in the interior of $[0,T]$). In view of the concativity, there are constants $T_a, T_b > 0$ ($T$ for "tangent") such that
$ f(x) \leq T_a(x-a) + R $
and
$ f(x) \leq T_b(b-x) + R $
for all $x \in [0,T]$.
Do draw a diagram and then consider the (measurable) curvilinear sets:
$ X := \left\{ (x,y) \in \mathbb{R}^2 \; : \; 0 \leq x \leq a, \; f(x) \leq y \leq R \right\} $
$ Y := \left\{ (x,y) \in \mathbb{R}^2 \; : \; a \leq x \leq b, \; R \leq y \leq f(x) \right\} $
$ Z := \left\{ (x,y) \in \mathbb{R}^2 \; : \; b \leq x \leq T, \; f(x) \leq y \leq R \right\} $
Note that the constant $R$ is the mean value of $f$ and is such that $\mathscr{L}^2(Y) = \mathscr{L}^2(X) + \mathscr{L}^2(Z)$, with $\mathscr{L}^2$ denoting Lebesgue measure.
Our linear concativity estimates above allow us to further estimate these measures from above and below by the measures of certain triangles (looking at your diagram is going to help here).
In particular, we may estimate $\mathscr{L}^2(Y)$ from above by the area of the triangle determined by the lines $y = T_a(x-a)+R$, $y = T_b(b-x)+R$, and $y = R$. Some basic Euclidean geometry then gives
$ \mathscr{L}^2(Y) \leq \frac{1}{2} \frac{(b-a)^2 T_a T_b}{T_a+T_b} $
(The right hand side is simply the area of the triangle.) Similarly bound $\mathscr{L}^2(X)$ from below by the area of the orthogonal triangle $x = 0$, $y = R$, $y = T_a(x-a)+R$, and $\mathscr{L}^2(Z)$ from below by the area of the corresponding triangle on the right determined by $x = T$, $y = R$, $y = T_b(b-x)+R$.
$ \mathscr{L}^2(X) + \mathscr{L}^2(Z) \geq \frac{1}{2} a^2 T_a + \frac{1}{2} (T-b)^2 T_b $
Since $\mathscr{L}^2(Y) = \mathscr{L}^2(X) + \mathscr{L}^2(Z)$, we need have
$ \frac{1}{2} \frac{(b-a)^2 T_a T_b}{T_a + T_b} \geq \frac{1}{2} a^2 T_a + \frac{1}{2} (T-b)^2 T_b $
Things start to look a little hopeful around here; indeed we are close. Canceling the $\frac{1}{2}$ factor and multiplying through by $\frac{T_a+T_b}{T_a T_b}$ we get
$ (b-a)^2 \geq a^2 \frac{T_a + T_b}{T_b} + (T-b)^2 \frac{T_a + T_b}{T_a} = a^2 + (T-b)^2 + a^2 \frac{T_a}{T_b} + (T-b)^2 \frac{T_b}{T_a} $
We may of course estimate the last two terms by AM-GM (or $x^2 + y^2 \geq 2xy$) and get
$ (b-a)^2 \geq a^2 + (T-b)^2 + 2a(T-b) = (T-b+a)^2 $
from where it follows that $b-a \geq \frac{1}{2} T$. This settles the "general case" where $f(a) = f(b) = R$.
In some situations $f(a)$ or $f(b)$ (but not both) may fail to equal $R$. This boundary situation is easily amenable. In that case we have $f(a) = R$, $f(b) > R$, $b = T$ (or with $a$ and $0$ in place of $b$ and $T$). Then instead of comparing the areas of three triangles (one scalene, two orthogonal), we just compare the areas of two orthogonal triangles (one defined by $x = 0$, $y = R$, $y = T_a(x-a)+R$, and the other one defined by $x = T$, $y = R$, $y = T_a(x-a)+R$). This is much easier and immediately gives $a \leq \frac{1}{2} T$, $b = T$.