Как хранить строку в виде байтов?
Что-то я не понимаю чего вы хотите добиться. То что вы говорить - низкоуровневое программирование, для этого вам не нужен C#. Берите C/C++ и наслаждайтесь прямой работой с памятью.

Вообще со строками есть два подхода. Первый использовал Pascal: в нулевом байте строки хранится её длина. Так как паскаль использовал однобайтную кодировку (ANSI), то этого было достаточно для хранения строк длиной до 255 байт. Вы, в принципе, можете использовать и 2 и 4 байта. И это неплохо работало.
Второй подход - это подход из C++, когда строка заканчивается символом '\0' (zero-terminated string). Тут тоже есть свои тонкости, в основном связанные с тем, что при определении длины строки нужно помнить что '\0' не входит в её длину. Еще есть потенциальная ошибка, связанная с выходом за пределы строки и повреждением следующих за ней блоков памяти.

Выбирайте - какой подход вам больше нравится.
Для того чтобы хранить строки в байте вам в помощь может придти MemoryStream:

byte[] data = new byte[255];
MemoryStream memory  = new MemoryStream(data);

StreamWriter writer = new StreamWriter(memory);
StreamReader reader = new StreamReader(memory);

С помощью writer и reader можете сделать ввод/ввывод строк!