Thank you for discussing this with the MaplePrimes community.
We find that timelimit works as expected for this code in Maple 2021.1.
Make sure to notice the part of the ?timelimit documentation that
Note: In some cases, the execution may not abort at exactly the time limit imposed, but will abort as soon as it can do so safely. This can happen when execution is in critical sections of certain built-in routines.
So timelimit may not always abort at 60 seconds, but it aborts as soon as it can after that time.
Unfortunately, it is not currently possible to abort execution after an exact elapsed time.
For the example in this thread, we find with Maple 2021.1 on Windows 10,
st := time();
ode := (y(x)^4 - a^2*x^2)*diff(y(x), x)^2 + 2*a^2*x*y(x)*diff(y(x), x) + y(x)^2*(y(x)^2 - a^2) = 0;
timelimit(60, dsolve(ode, y(x)));
Error, (in LinearAlgebra:-Determinant) time expired
elapsed := (time() - st)/60;
elapsed := 1.261466667