There is a way to define a size override for any Texture2D (without resizing the data itself), but it’s not currently exposed to the scripting API.
My recommendation for now is to design your UI for a high base window size (like 3840x2160 for desktop games) and use the canvas_items stretch mode. Godot will downscale 2D rendering at window sizes lower than the base window size. Make sure to enable mipmaps on import on all textures to prevent them from looking grainy at low resolutions.