In my answer I'll list three things that are worth thinking about, that most people wouldn't intuitively consider as sets.
Symbols
To expand a bit on Henning's answer, I'll give another example. No symbol is a set. This includes the symbol "2", which is why in a strict sense "2" can never be a set, although "2" can be interpreted as a set in some models of some formal systems such as ZFC.
Each symbol is designed and described in a meta-language to convey an intended meaning, but the symbol itself has no intrinsic structure. It is only the interpretation of the symbol that can be said to have any structure at all, and that of course depends on the interpretation. In ZFC the intended interpretation is that every object in the set-theoretic universe is a set, but what about the symbols used in the language of ZFC itself? You can encode each symbol as some set in ZFC, exactly like you can encode the concepts of natural numbers as sets, but that is still merely a representation and not the real thing, as Henning's answer explains.
Similarly consider the fact that any proof in ZFC is a string of symbols. Again you can encode any finite string of symbols as a set in ZFC (or even as a natural number in PA) and be able to perform the usual operations on strings using suitable first-order formulae. But again the encoding is not the real thing. And this time it is even more obvious that it cannot be the real thing. For it is actually a theorem of Godel that any sufficiently strong formal system does not fully capture everything that is true about itself. In particular there is a first-order statement Con(ZFC) over ZFC that states "There does not exist an encoding of a proof of a contradiction within ZFC.". According to the intended interpretation of the encoding, one would think that Con(ZFC) means the same thing as "ZFC is consistent" in the meta-system, but it does not, since if ZFC has a model whose encodings of strings are isomorphic to the strings in the meta-system, then Con(ZFC) is independent over ZFC. Furthermore, it is possible that ZFC is consistent but disproves Con(ZFC). The whole problem lies in the fact that no sufficiently strong formal system can pin down their intended interpretation, at least in classical first-order logic. So it is not just that strings are not sets, but even more so that it is impossible to fully define them in any formal system (not just ZFC).
Urelements
Unrelated to the above is the notion in some formal systems that not everything is a set. NFU is one such formal system invented by Quine, where there are urelements that are not sets, and it is meaningless to ask whether something is a member of an urelement. The concept of urelements can be said to be motivated by the philosophical position of not assuming a particular kind of structure when it might be absent. In formal systems we can therefore handle real-world objects without any philosophical concern as to whether they are sets, since they could be urelements. One does not have to assume that urelements are totally atomic or indivisible in some sense; rather it is just that the formal system does not know about their internal structure.
Functions and algorithms
Lastly, we have functions. As you probably know, in ZFC a function can be encoded as a set of ordered pairs from its domain and codomain that exactly one pair with first item $x$ for any $x$ in the domain. As before, this encoding is not the only possible way, so what really is a function? Moreover, we write things like "$f(g(x) \cup y) \in z$" where $f,g$ are functions with appropriate domains and codomains, which is technically impossible in pure ZFC but requires a syntactic transformation. This is because our intuitive notion of functions is not the encoding even though it is more or less captured by the encoding. It is not completely captured because we can trivially conceive of the identity function on the entire universe, but that cannot be encoded in ZFC without the pain of contradiction. Nor can it be done in any extension of ZFC. Incidentally it can be done in NFU, but some would argue that NFU is about as unintuitive as ZFC, just in different aspects.
Also, algorithms are the natural extension of functions. They still start with the intuitive notion of doing something based on the input and producing some output, but usually involve iterations of some sort. Again, we can encode them using unions of chains of the encodings of functions constructed by induction, but it's arguable whether that is natural. For this reason there are other notations devised in history, such as [typed] lambda calculus and μ-recursion and most intuitively programming languages. No programmer conceives of the algorithm embodied by his program as a set under normal circumstances.