Строгая литературная норма: носков, однако вариант носок, запрещавшийся ранее, в последнее время также признается допустимым.
Запятая нужна, если в речи между союзами но и как только делается пауза. Если паузы нет, запятая не ставится.
Корректно: Не секрет, что он тогда ходил в магазин. Не секрет — это не вводное слово, а самостоятельное предложение.
Корректно с запятой перед что: ...совершает хорошие поступки не оттого, что он получит что-то взамен.
Да, в этом предложении запятые расставлены правильно.
Поскольку прямая речь заканчивается восклицательным знаком, после нее ставится тире вместо запятой, требующейся перед союзом но (см. пункт в) параграфа 136 полного академического справочника «Правила русской орфографии и пунктуации» под ред. В. В. Лопатина): Он хотел крикнуть: «Хватит!» — но что-то остановило его.