For such manipulations it's sometimes useful to look at the derivatives as if they were powers of a differential operator, and then your expression becomes a polynomial in this operator.
Once you have the polynomial form, it is possible to apply functions such as Eliminate to achieve some automation.
First I define the equation to start with (adding an arbitrary righthand side rhs), then I replace Derivative patterns with appropriate powers of a symbolic operator dOp, leading to a new equation eqPoly:
Clear[X1, Y1]
eq =
a1*X1[x] + a2*Derivative[2][X1][x] - Derivative[4][X1][x] == rhs;
eqPoly = eq /. Derivative[n_][X1][x] :> dOp^n
(* ==> a2 dOp^2 - dOp^4 + a1 X1[x] == rhs *)
newEq = Eliminate[{eqPoly, dOp^2 == newOp}, dOp]
(* ==> -rhs + a1 X1[x] == -a2 newOp + newOp^2 *)
newEq /. {newOp^n_ :> Derivative[n][Y1][x], newOp :> Y1[x]}
(* ==> -rhs + a1 X1[x] == -a2 Y1[x] + (Y1^\[Prime]\[Prime])[x] *)
In newEq, I eliminate dOp using the second equation which defines the operator newOp that corresponds to the second derivative of the original function, also considered as an operator whose powers correspond to differentiations. The latter are re-introduced in the last step by replacing newOp with Y1[x], the new function, and similarly its derivatives.
The definition dOp^2 == newOp of the new function in the Eliminate step is equivalent to Derivative[2][X1][x] == Y1[x] in the new notation, which is the second equation of the coupled system.
Equalsign, only a=. – Jens Jan 30 at 5:01