Quaternions are not quite “needed” to handle rotations in 3D space. Any possible 3D rotation can be represented with 3 numbers (rotation around the X, Y, and Z axes), and you can build a full 3D game engine without ever having to use a quaternion. Quaternions are a useful tool for animating rotations, particularly for avoiding gimbal lock.
In 3D, you have 3 axes of rotation, according to the 3 possible combinations of XY, XZ, and YZ. In 2D, you have only 1 possible point of rotation: XY. In 4D, you have 6 possible planes of rotation: XY, XZ, YZ, XW, YW, and ZW. So, to represent a rotation in 4D space, you only should need 6 numbers.
Getting to your question, the developer of Meigakure actually wrote a blogpost (nine years ago!) about the problem of the 4D equivalent of Quaternions. Basically: you use a Rotor, which is similar to a Quaternion, but a more generalized version that works in any number of dimensions. For most operations, you only need the 6 plane terms, plus 1 scalar term (so, 7 numbers). But wait, that’s not quite true, because for some multiplications you might end up with an eighth product: the XYZW term. So, in the end you do end up using an 8-dimensional vector, but no it is not an octonion, and the math is different from an octonion. EuclideanSpace.com has a pretty good explanation of how this works, and what you can do with it.
But octonions aren’t totally useless. Let’s not forget that the best character in Splatoon 2 is an octonion.