As Demirug said, D3D10 allows limited format "casting" for texture resources. It's pretty restrictive -- you can't change the total pixel size or number of components per pixel, just how the bits in each component are interpreted. Views don't let you change the width or height either, just mip levels and array length (for texture arrays) or depth (for volume textures).
But D3D10 also supports "Buffer Resources", which are just linear (1D) regions of memory with no fixed structure at all, apart from size in bytes. They're mostly used for vertex/index/streamout buffers, but can also be read in a shader similar to how textures are. Each buffer view you create can have a totally different format without any of the restrictions that texture views have. You can have multiple views of a buffer bound at the same time, so you could bind a view with 4xFP32 elements and another one with 1xUINT16 to a single shader, for example. Reading from buffers is different from textures since you can only use integer [0..n] coordinates rather than normalized [0..1], you only get point sampling, no mipmaps, etc.
So this is pretty much exactly what you're asking for -- big chunks of 1D unformatted data. But by using them instead of textures you're giving up all the filtering horsepower and all the tricks GPUs do to lay out textures for maximum utilization of the DRAMs and memory bus. Those layout tricks require knowing the dimensions and pixel size, so can't be done for buffers without copying and reformatting for each view. Don't underestimate how much performance that leaves on the table...