Is there any way to disable a struct from being used as an lvalue (cannot be used as a variable)?
No, it's not possible. Every type can have instances that are lvalues.
You may get better answers if you let us know what you are trying to achieve. Why do you want to prevent your struct from being used as an lvalue?